Java中有意思的n++
程序员文章站
2024-03-12 22:20:50
...
首先,我们先来看一段代码吼:
public static void main(String arguments[]) {
int n = 0;
for(int i = 0; i<3; i++){
n = n++;
System.out.println(n);
}
System.out.println(n);
}
打印结果:0
0
0
0
再来看一个:
public static void main(String arguments[]) {
int num = 50;
num = num++ * 2;
System.out.println(num);
}
打印结果:100
是不是很奇怪??==.==
● n++其实是一个表达式,是有返回值的
● 它的执行步骤是 先存储原值,然后加1,最后返回原值
● 真正赋值的动作其实是在自增之后进行的
什么意思呢?我们来看第一段代码:
● i = 0时,n = n++; n的初始值为0,n++执行后,n变成了1(自增),但n++返回的是0,将0赋值给n(赋值),n又变成了0,同理,
● i = 1时,n = n++; n的值在第一步时被赋值为0,n++执行后,n变成了1(自增),但n++返回的是0(赋值),将0赋值给n,n又变成了0,
● ······
接下来我们来看第二段代码:
num初始值为50;
执行代码 num = num++ * 2;
先执行 num++,num变成了51(自增),但num++返回值为50,此时50 * 2 = 100
将100赋值给num(赋值),所以num的最终值变成了100
上一篇: Java有意思的知识点