[英]Pre and Postfix Increment
a = 1;
int a2 = a++;
System.out.println("----------Test 3 ----------");
System.out.println("The value of a is " + a);
System.out.println("The value of a2 is " + a2);
System.out.println("The value of a2 is " + a2);
结果是:
----------测试3 ----------
a 的值为 3
a2 的值为 2
a2 的值为 2
我不明白为什么在第二个output之后a2
的值没有增加。 甚至a
使用后缀增量增加并分配给a2
。 请给我解释一下。
我不明白为什么在第二个 output 之后 a2 的值没有增加,即使 a 使用后缀增量增加并分配给 a2。
让我们一步一步来 go:
a = 1
将变量a
设置为 1; 现在:
int a2 = a++;
将相当于:
int a2 = a;
a++;
首先分配,然后才增加,因此 output:
The value of a is 2
The value of a2 is 1
The value of a2 is 1
和名称后修复增量。
对于您想要使用++a
的行为,即:
int a = 1;
int a2 = ++a;
System.out.println("The value of a is " + a);
System.out.println("The value of a2 is " + a2);
System.out.println("The value of a2 is " + a2);
Output:
The value of a is 2
The value of a2 is 2
The value of a2 is 2
在这种情况下:
int a2 = ++a;
相当于:
a++;
int a2 = a;
前缀和后缀增量仅在您正在执行的语句中很重要。 尝试在打印语句中添加前缀和后缀增量。
这就是后增量运算符的设计方式......
正在做
int a2 = a++;
相当于做
int a2 = a;
a = a + 1;
所以你的代码正在生成这个 output:
----------Test 3 ----------
The value of a is 2
The value of a2 is 1
The value of a2 is 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.