繁体   English   中英

前缀和后缀增量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM