提问人:Emily Watson 提问时间:1/31/2021 最后编辑:user207421Emily Watson 更新时间:4/12/2023 访问量:112
前缀和后缀增量
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
我不明白为什么在第二个输出后 的值没有增加。偶数使用后缀增量增加并分配给 。请向我解释一下。a2
a
a2
答:
1赞
Peter Knall
1/31/2021
#1
前缀和后缀递增仅在您正在执行的语句中起作用。尝试在 print 语句中添加前缀和后缀增量。
1赞
ΦXocę 웃 Пepeúpa ツ
1/31/2021
#2
这就是 Post Increment 运算符的设计工作方式......
行为
int a2 = a++;
相当于做
int a2 = a;
a = a + 1;
因此,您的代码正在生成以下输出:
----------Test 3 ----------
The value of a is 2
The value of a2 is 1
The value of a2 is 1
2赞
dreamcrash
1/31/2021
#3
我不明白为什么 a2 的值在 第二个输出甚至 A 使用后缀增量增加并分配 至 A2。
让我们一步一步来:
a = 1
将变量设置为 1;现在:a
int a2 = a++;
将等同于:
int a2 = a;
a++;
首先分配,然后递增,因此输出:
The value of a is 2
The value of a2 is 1
The value of a2 is 1
和名称 POSTFIX 增量。
对于您要改用的行为,即:++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);
输出:
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;
评论