为什么“i”和“i”在Java for循环中有相同的行为?
为什么在Java中,i--和--i在for循环中有相同的行为
例: 我的变量“i”在循环之前不会减少:
for(int i = 5; i > 0; --i) {
System.out.println(i);
}
及
for(int i = 5; i > 0; i--) {
System.out.println(i);
}
。。。将同时打印5,4,3,2,1
但是:
int i = 5;
System.out.println(--i);
int i = 5;
System.out.println(i--);
。。。将打印4和5
# 1 楼答案
这是因为
for
循环是这样工作的:在执行
for
循环中的语句之后,在检查要循环的条件之前,执行i--
或--i
条件。也就是说,在更新部分中使用i--
或--i
并不重要# 2 楼答案
因为循环是这样工作的:
因此,任何for循环都可以这样重写:
用你的例子来做这件事会导致:
正如您所看到的,无论输出是
--i
还是i--
都与此无关,因为print调用总是在变量递减之前发生。为了达到你想要的效果,你可以尝试以下方法: