我已经浏览了这个论坛中与该主题相对应的所有问题,并且我觉得提出一个不同的问题,因为这个问题没有得到明确的回答。这是我的场景: 我有这个类 Test1:
public class Test1 {
public static void main(String args[]) {
int i=0, j=2;
do {
i= i+1;
j--;
} while(j>0);
System.out.println(i);
}
}
现在这是我的问题: a) 如果我用++i 替换 'i= i+1' 的增量操作,我会得到所需的输出
1
2
但是如果我用 i++ 替换 'i= i+1' 的增量操作,我会得到所需的输出
0
0
我确实理解在 for 循环中使用前缀和后缀运算符的区别,但为什么在 do-while 循环中该值根本没有增加?
最佳答案
使用i = i++;
永远不会改变i
值。
仅使用:
i++;
为什么?因为:
i = i++;
类似于做这样的事情:
temp = i; // temp is 0.
i = i+1; // increment i
i = temp; // assign temp (which is 0) to i.
关于java - 不同情况下前缀和后缀运算符的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20473305/