循环比我预期的多运行一次
Loop runs one more time than I expected
class BlankIt{
public static void main(String[] args) {
int i = 10, j = 20;
while(i++ < --j){
System.out.println("\n " + i + " " + j);
}
System.out.println("\n " + i + " " + j);
}
}
前面的输出是16 14
。为什么会这样??当条件达到 15 < 15
时循环停止。请帮帮我!!
i
的增量,作为 post 增量,将发生在比较计算之后,另一方面,j
是预减量在评估比较之前:
10 < 19 (true)
11 < 18 ...
12 < 17 ...
13 < 16 ...
14 < 15 ...
15 < 14 (false)
在最后一次比较的评估之后,i
将再递增一次并将具有 16
的值,j
因为它已经递减将保持 14
.
class BlankIt{
public static void main(String[] args) {
int i = 10, j = 20;
while(i++ < --j){
System.out.println("\n " + i + " " + j);
}
System.out.println("\n " + i + " " + j);
}
}
前面的输出是16 14
。为什么会这样??当条件达到 15 < 15
时循环停止。请帮帮我!!
i
的增量,作为 post 增量,将发生在比较计算之后,另一方面,j
是预减量在评估比较之前:
10 < 19 (true)
11 < 18 ...
12 < 17 ...
13 < 16 ...
14 < 15 ...
15 < 14 (false)
在最后一次比较的评估之后,i
将再递增一次并将具有 16
的值,j
因为它已经递减将保持 14
.