int i = 10;
int j = 0;
do {
j++;
System.out.println("loop:" + j);
while (i++ < 15) { //line6
i = i + 20;
System.out.println(i);
} ;
} while (i < 2);
System.out.println("i_final:" + i);
输出:
loop:1
31
i_final:32
为什么i_final
是32
而不是31
?我们可以看到do_while
循环只执行了一次,因此第8行也应该只执行一次,因此将“i”的值增加1. 31
增加到{{1}时}?
答案 0 :(得分:3)
while循环将在中断之前执行两次。
while (i++ < 15) { //line6
i = i + 20;
System.out.println(i);
} ;
首先它增加到11。
检查15.返回true。
现在它增加到31.(i = i + 20
)
现在再次循环。
它递增值。
答案 1 :(得分:2)
第一次检查while循环条件时i = 11,之后i增加20,所以i = 31。然后,当再次检查条件时,当发现31 < 15是假的i仍然增加1.所以i = 32
答案 2 :(得分:2)
当您执行while循环(i ++&lt; 15)时,它检查条件并在i ++是&lt; 15,但是这里当你做一个while循环j ++时循环变为2次而当它变为while(i ++&lt; 15)时它将i的值增加1并停止......所以在第二个循环中i的值增加1但while循环内的函数保持不变,当i ++为&gt;时超过15
如果您执行以下操作,您将获得31
int i = 10;
int j = 0;
do {
j++;
System.out.println("loop:" + j);
while (i < 15) { //line6
i++
i = i + 20;
System.out.println(i);
} ;
} while (i < 2);
System.out.println("i_final:" + i);