【问题标题】:Java do while loop incrementJava做while循环增量
【发布时间】:2015-02-12 15:36:30
【问题描述】:
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 什么时候增加到 32

【问题讨论】:

  • while循环的contents执行了一次,但是条件检查了两次。

标签: java while-loop do-while


【解决方案1】:

While 循环在中断前会执行两次。

while (i++ < 15) {                //line6 
                i = i + 20; 
                System.out.println(i); 
            } ;

首先它增加到 11。

检查 15。返回 true。

现在增加到 31。(i = i + 20)

现在又是 while 循环。

它增加值。

【讨论】:

    【解决方案2】:

    当您以 (i++

    如果您执行以下操作,您将获得 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); 
    

    【讨论】:

    • 我认为你的意思是把 do{}while(j
    【解决方案3】:

    第一次检查while循环条件时i=11,之后i增加20,所以i=31。然后再次检查条件,当发现 31

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多