JAVA,循环的奇怪结果
我有一个简单的问题。为什么这个循环的结果是12?我以为会是11点JAVA,循环的奇怪结果,java,Java,我有一个简单的问题。为什么这个循环的结果是12?我以为会是11点 public static void main(String[] args) { int i = 10; while (i++ <= 10){ } System.out.println(i); } //RESULT: 12 publicstaticvoidmain(字符串[]args){ int i=10; while(i++它将运行while循环中的条件两次,第一次当i=10时,它
public static void main(String[] args) {
int i = 10;
while (i++ <= 10){
}
System.out.println(i);
}
//RESULT: 12
publicstaticvoidmain(字符串[]args){
int i=10;
while(i++它将运行while循环中的条件两次,第一次当i=10时,
它将把它增加到11。然后它将检查i是否发生这种情况,因为它必须在退出循环之前进行另一次检查
i is 10
check i++<=10?
i is 11
check i++<10?
exit
i is 12
i是10
检查i++i++
是否显示“给我i
的当前值,然后递增”。在这种情况下,当i=10
增加到11
时,表达式对上一个值10
为真,因此循环重复,对i=11
进行测试,将i
增加到12
,此时表达式为假,停止循环
i is 10
check i++<=10?
i is 11
check i++<10?
exit
i is 12
这种增量后行为有点令人困惑,因此只有当它正是您需要的时候才应该使用。一般来说,最好假装++
不返回任何内容,这通常会使代码的意图更加清楚:
while(i <= 10) {
i++;
}
while(i)