我只想了解for(int i =1;i<4;i++)
之间的区别
和for(int i =1;i++<4;)
第一个打印123
第二个打印234
for(int i =1;i<4;i++)
System.out.print(i);
for (int i =1;i++<4;)
System.out.print(i);
我不明白为什么结果会有所不同,我希望两者都得出123。
答案 0 :(得分:1)
此循环:
for (int i =1;i++<4;)
在i
之前增加System.out.print(i)
,这意味着i
的第一个打印值将为2。
答案 1 :(得分:0)
在标准for循环中,i
在循环迭代后 递增。来自Java Tutorials:
在每次循环迭代之后调用增量表达式;该表达式增加或减少值是完全可以接受的。
在第二个示例中,它在要求值的表达式中递增,但是由于使用了后递增运算符,所以求值是旧值。这意味着到打印时,它已经增加了。
答案 2 :(得分:0)
为说明起见,我仅使用花括号来重构语句...
for(int i =1;i<4;i++) {
System.out.print(i);
}
System.out.println();
for (int i =1;i++<4;) {
System.out.print(i);
}
System.out.println();
在第一个“ for”语句中-具有“ i ++”的第三个子句在执行循环内容之前不会发生。
接下来,考虑第二个“ for”语句,即比较子句(第二子句)。将在循环内容开始之前 进行完全评估。因此,进入第一次迭代时,出于比较的目的,“ i ++”被评估为“ 1”,但在评估布尔子句后立即被递增。
所以当它到达打印语句时,它已经等于2。(依此类推)
希望对您有所帮助!