while文はfor文と並んで繰り返し処理の基本形として使われますが、使用方法はそれぞれ異なります。
今回は、while文を使った繰り返し処理について解説します。

while文

while文は、条件式の評価がtrueの間に繰り返し処理を行う制御文です。回数が決まっていない場合の繰り返し処理に使われます。
以下が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

変数が8より小さい間はその変数の値を出力し、変数が8に達したら処理を終了するという繰り返し処理です。
while文には、(i < 8)のように条件式を記述します。
また、繰り返し処理の中でi++という後値インクリメントを使い、変数の値を一ずつ増やしています。

注意点は、条件式の評価がfalseとならない限りは、繰り返し処理が永遠に行われるということです。
falseとならずに処理が永遠に続くことを無限ループと呼びます。
本来意図していない無限ループは、コンピュータに負荷を与える原因となるため、避ける必要があります。上記のサンプルの場合、i++の記述がなければ、無限ループとなってしまうため、注意が必要です。

continueとbreak

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までの間は、変数の値が繰り返し出力されます。
変数が3に到達すると、continueにより処理がスキップされ、if文を抜いた処理が実行されます。
else文のbreakにたどり着くと繰り返し処理は終了です。

do…while文

do…while文は、繰り返し処理を先に実行し、その後に条件の評価を行います。
そのため、条件式の結果に関わらず、必ず一回は実行して欲しいときにdo…whileを活用します。

基本構文は以下です。

do {
  実行する処理; 
} while (条件式);

サンプルコード

let i = 0; 

do { 
  console.log(i); 
  i++; 
} while (i < 5);

// 0
// 1
// 2
// 3
// 4

はじめにdoの中の処理を一度通り、while文の条件により値が5になるまでは、処理が繰り返されます。
while文の条件式の評価がfalseの場合でも、1度は処理が実行されます。

 

まとめ

今回は、while文を使った繰り返し処理について解説しました。

繰り返し処理にはfor文も使われますが、繰り返し回数の指定がない場合はwhile文を使うと便利です。

// ポイント
* while文は、条件式がtrueの間繰り返し処理を実行する
* continueとbreakで繰り返し処理を細かく制御する
* do…while文は、条件の結果に関わらず必ず1回は処理を実行する

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

合わせて読みたい繰り返し処理入門シリーズ

第1回:繰り返し処理 -for文
第2回:繰り返し処理 -while文(当記事)