Java做循环增量

时间:2014-12-14 11:24:44

标签: java while-loop do-while

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_final32而不是31?我们可以看到do_while循环只执行了一次,因此第8行也应该只执行一次,因此将“i”的值增加1. 31增加到{{1}时}?

3 个答案:

答案 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);