前回は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

Javascript while

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になったのでループから抜けます

Javascript while

変数が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

Javascript while

はじめにdoの処理を一度通り、6行目のwhile文の条件により値が5になるまでは、処理が繰り返されます。

以下のようにはじめからfalseの場合でも、1度は実行されることがわかります。

Javascript while

まとめ

今回はwhile文を使った繰り返し処理について解説しました。
似たような繰り返し処理としてfor文がありますが、繰り返し回数の指定がない場合は、while文を使うということを覚えておきましょう。

以下のポイントをもう一度意識して、より実践的な繰り返し処理を行っていきましょう。

  • 条件式がtrueの間は繰り返し処理が実行される
  • 繰り返し処理を細かく制御するならcontinueとbreak
  • 条件の結果に関わらず、必ず1回は処理を実行したいならdo…while

Javascript関連記事