前回はfor文による繰り返し処理について取り上げましたが、今回はwhile文を使った繰り返し処理について解説します。
while文はfor文と並んで繰り返し処理の基本形として使われますが、使用方法はそれぞれ異なります。この記事を通してwhile文を用いた繰り返し処理のポイントをおさえていきましょう。for文の基本を理解したいという方は、以下の記事も参考にしてください。

while文
while文は、回数が決まっていない場合の繰り返し処理に使われます。条件がtrueの間に繰り返し処理が実行されることが特徴です。while文で書いた繰り返し処理はfor文に書きかえることが可能です。また、その逆もできます。
while文の基本構文
while (条件式) {
実行する処理1;
実行する処理2;
実行する処理3;
}
ブロック{}に囲まれた文が、繰り返しを行う処理文です。
繰り返し処理文が1つだけの場合、ブロックを省略して一行で書くこともできます。
while (条件式) 実行する処理;
まずはかんたんな例をみていきましょう。
サンプルコード
let i = 0;
while (i < 8) {
console.log(i);
i++;
}
出力結果
0
1
2
3
4
5
6
7
while文の括弧()の中の条件を確認すると、変数の値が8以上になるまでは繰り返し処理が行われていることが分かります。繰り返し処理の中で「i++」という後値インクリメントを使い、変数の値を一ずつ増やします。変数が8に達した段階で、falseとなるため、繰り返し処理は終了です。
注意点は、条件がfalseとならない限りは、繰り返し処理が永遠に行われるということです。falseとならずに処理が永遠に続くことを無限ループと呼びます。
本来意図していない無限ループは、コンピュータに負荷を与える原因となるため、避ける必要があります。上記のサンプルの場合、「i++」の記述がなければ、無限ループとなってしまうため、注意が必要です。
for文と同様に、while文でもcontinueやbreakを使用することができます。
サンプルコード
let i = 0;
while (i < 8) {
console.log(i);
if (i < 3) {
i++;
continue;
} else {
console.log(i + 'になったのでループから抜けます');
break;
}
}
出力結果
0
1
2
3
3になったのでループから抜けます
変数が3に到達すると、continueにより処理がスキップされます。そのままループのはじめに戻り、5〜7行目を抜いた処理が繰り返されます。10行目のbreakにたどり着くと繰り返し処理は終了です。
do…while文
通常のwhile文と同じく、条件がtrueの間は繰り返しの処理が実行されます。また、falseにならない場合は、無限ループとなってしまうため注意が必要です。
do-while文は、繰り返し処理が先に実行され、その後に条件の評価が行われます。そのため、条件式の結果に関わらず、必ず一回は実行して欲しいときにdo…whileを活用すると良いでしょう。
基本構文
do {
実行する処理;
} while (条件式);
サンプルコード
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
出力結果
0
1
2
3
4
はじめにdoの処理を一度通り、6行目のwhile文の条件により値が5になるまでは、処理が繰り返されます。
以下のようにはじめからfalseの場合でも、1度は実行されることがわかります。
まとめ
今回はwhile文を使った繰り返し処理について解説しました。
似たような繰り返し処理としてfor文がありますが、繰り返し回数の指定がない場合は、while文を使うということを覚えておきましょう。
以下のポイントをもう一度意識して、より実践的な繰り返し処理を行っていきましょう。
- 条件式がtrueの間は繰り返し処理が実行される
- 繰り返し処理を細かく制御するならcontinueとbreak
- 条件の結果に関わらず、必ず1回は処理を実行したいならdo…while
Javascript関連記事


