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文(当記事)
コメント