while ステートメント

 while ステートメントは、指定された条件が真である間、ステートメントまたはブロックを繰り返し実行するものです。ループを作成することができます。
 構文は以下の通りです。

while(expression)
    ステートメントまたはブロック


 「ステートメントまたはブロック」は、条件式である expression が真である限り、繰り返し実行されます。

 動作としては、
(1) まず、expression を評価し、偽であれば、ステートメントまたはブロックは実行されない
(2) ステートメントまたはブロックを実行する
(3) expression を評価し、その結果が真ならば (2) へ、そうでなければ while ステートメント終了

 つまり、最初から expression が偽の場合はステートメントまたはブロックは実行されません。また、常に expression が評価されるわけではなく、ステートメントまたはブロックを一回実行するごとに expression の真偽がチェックされます。
 また、(3) の時点で、ブロックの場合はいったんブロックから抜けます ( 変数などは消去されると言うこと )。

例:
    while(func()) ;
    /* func() が真の間、何もしないで func() を評価し続ける */

    while(func()) i++;
    /* func() が真の間、i++ を実行し続ける */

    while(i < 5) // i が 5 より小さい間
    {
        func(i);
        i++;
    }

break

 break ステートメントは、while を途中で終了させたい場合に記述します。

例:
    while(true) // break が実行されない限りは無限ループ
    {
        if(func()) break; // func() が真ならばwhile終了
        func2(); // ↑で break が実行されなければここにくる
    }
    // break が実行されると、ここにくる

continue

 continue ステートメントは、途中で、条件式の評価からやり直したいときに記述します。
 continue が実行されると、(3) に実行が移ります。

例:
    var i = 0;
    while(i < 5)
    {
        if(func1()) continue;
        // func1() が true ならば、i < 5 の条件式チェックがされ、真ならば
        // またブロックの先頭から実行される
        func2();
        i++;
    }

do縲忤hile

 do縲忤hile ステートメントは、while ステートメントと同じですが、最初に条件式のチェックを行いません。
 構文は以下の通りです。

do
    ステートメントまたはブロック
while(expression);


 最初に条件式をチェックしないため、do の時点で条件式が偽でも「ステートメントまたはブロック」は実行されます。
 いったん「ステートメントまたはブロック」が実行されれば条件式がチェックされ、偽ならばループを抜け、真ならば再びステートメントまたはブロックが実行され、これを繰り返します。