2010-04-17 92 views
5

我在某处看到了这段代码。我想知道do是什么。“做”在这里做什么? (java)

public class LoopControl { 
    public static void main(String[] args) { 
     int count = 0; 

     do { 
      if (count % 2 == 0) { 
       for (int j = 0; j < count; j++) { 
        System.out.print(j+1); 

        if (j < count-1) { 
         System.out.print(", "); 
        } 
       } 

       System.out.println(); 
      } 

      count++; 
     } 
     while (count <= 5); 
    } 
} 

我的意思是什么do是什么意思?它的功能是什么?任何其他信息也是有用的。

+3

重新格式化您的码。哦,嘿等 - 现在你可以看到'做'属于哪里^^ – Leo 2010-04-17 21:22:49

+7

你说doo doo。 – 2010-04-17 21:23:23

+0

您可以重新格式化它以正确缩进括号。第二个if语句没有左括号,因此与它排成一列的括号实际上属于for循环,而下一个属于第一个if。 – DaveJohnston 2010-04-17 21:24:25

回答

6

这是一个do-while循环。所以当count小于或等于5时,它将在下面的块中完成所有的操作。这和while循环的区别在于条件是在循环结束而不是开始时计算的。所以循环保证至少执行一次。

Sun tutorial on while and do-while.

哦,在这种情况下,它会打印:

1, 2 
1, 2, 3, 4 

编辑:只要你知道还会有在开始一个新行,但格式似乎并不让我证明这一点。

-1

它随之而来。 do {...} while()是一个最终具有条件的循环。

3

它类似于一个while循环,唯一的区别是它在执行至少一次

为什么?因为while条件仅在do区块后评估

为什么它有用?例如,考虑一个游戏菜单。首先,您要显示菜单(do块),然后,您希望继续显示菜单,直到有人选择退出选项,即停止条件为while

1

do { ... } while(CONDITION)确保块内不要将至少执行一次即使条件不满足,在另一方面,如果条件不满足一个while statment 永远不会执行