JavaScriptにおけるwhile
文は、指定した条件がtrue
である間コードブロックを繰り返し実行するために使用されます。この構文は、繰り返しの回数が事前に不明な場合や、条件が満たされるまで処理を継続する必要がある場合に特に有用です。
let count = 0; while (count < 5) { console.log(count); count++; // カウンタを1増やす }
↑の例では、count
の値が5になるまでカウンタの値をコンソールに表示し続けます。つまり、カウンタは0から始まり4になるまでの間(=5になる前まで)、「console.log(count);」の処理を5回繰り返し続けるということ。
このページではJavascriptにおけるwhile文の基本的な使い方やコツ、利用する際の注意点を実践的なコードを交えて1からわかりやすく解説します。
Webエンジニア/Webデザイナーを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
参考 【JavaScript入門】基本文法/基礎文法を5分で
ループ処理(繰り返し処理)とは?
ループ処理(繰り返し処理)とは、その名の通り同じ処理を複数回繰り返す処理のことです。
例えば、「こんにちは!」という文字を100回表示させたい場合。この場合、ループ処理を用いないと「こんにちは!」という処理を100個記述しなければなりません。
ループ処理を用いることで、複数回必要とする処理も1回の記述で行うことができます。プログラムの中では、このように同じ処理を複数回繰り返す必要があるシーンがよく登場します。この繰り返し処理をマスターできないと、非常に冗長なわかりづらいコードとなってしまうのです。
ここからは、具体的に繰り返し処理の1つ「while文」の使い方・書き方を解説します。
ループ(繰り返し)処理の1回をイテレーションと呼びます。
「こんにちは」を100回表示する処理のイテレーションの数は100です。
JavaScript:while文
JavaScriptでのwhile
ループとdo...while
ループは、プログラム内で繰り返し処理を行う際に用いられる重要な構文です。これらは似ていますが、実行されるタイミングに重要な違いがあります。初心者に向けて、これらのループの構文ルールと実践的な使い方を解説します。
whileループ
while (条件) { // 実行するコードブロック }
条件がtrue
である間、コードブロックが繰り返し実行されます。
while
ループは、条件がfalse
になるまでコードブロックを繰り返します。例えば、特定の回数だけ処理を繰り返したい場合や、ある条件を満たすまでループさせたい場合に適しています。
サンプルコード 数を数える
let count = 0; while (count < 5) { console.log(count); count++; // カウンターを1増やすことで、いずれループから抜け出せる }
このコードは、count
が5になるまで、カウントを1ずつ増やしながら数を表示します。
do...whileループ
do { // 実行するコードブロック } while (条件);
do while文を用いると、先に処理を行い、処理が完了したタイミングで条件式を判定します。
do...while
ループは、最低一度はコードブロックを実行したい場合に適しています。条件の評価は各繰り返しの後に行われるため、少なくとも1回は処理が保証されます。
サンプルコード ユーザー入力の処理
let input; do { input = prompt("10より大きい数を入力してください。終了するには10を入力してください。"); console.log(`入力された値: ${input}`); } while (input <= 10);
このコードは、ユーザーが10を入力するまで、または10より大きい数を入力するまで、繰り返しユーザーに数値の入力を求めます。do...while
ループのおかげで、少なくとも一度はprompt
が表示されます。
実際のプログラミングでは、これらのループをうまく使い分けることが重要です。初心者の方は、まずこれらの基本的なサンプルコードを試してみて、ループの動作を体感してみてください。
while
条件式を判定し結果がtrueなら処理を実行
do while
処理を実行した後に条件式を判定し結果がfalseなら処理を抜ける
whileループ / do whileループ を利用する際の注意点
while
ループとdo...while
ループを使用する際には、特に初心者にとっていくつかの重要な注意点があります。これらのポイントを理解することで、無限ループや予期せぬ挙動を避けることができます。
以下に、注意点とそれぞれの実践的なサンプルコードを示します。
注意点1: 無限ループの防止
ループ条件が常にtrue
と評価されるようなコードを書くと、無限ループが発生し、ブラウザがフリーズするか、プログラムが強制終了する原因となります。
サンプルコード 無限ループの例
// NG例 let count = 0; while (count < 5) { // countが増加しないため、条件は常にtrueとなる console.log("このループは終了しない"); } // OK例 let count = 0; while (count < 5) { console.log(count); count++; // countを増加させることで、ループが終了する条件を作る }
注意点2: 条件の変化を確認する
while
ループやdo...while
ループ内で、ループの条件に影響を与える変数が変化するようにしてください。変数がループ内で更新されない場合、ループが終了しない可能性があります。
サンプルコード 条件の変化
let i = 0; do { console.log(i); i++; // この行でiの値を更新し、ループの終了条件に近づける } while (i < 5);
注意点3: do...whileループは最低一度は実行される
do...while
ループでは、条件がfalse
であっても、ループのコードブロックが最低一度は実行されることを覚えておきましょう。これは、ループの前に条件を評価しないためです。
サンプルコード do...while
の挙動確認
let result = 10; do { console.log("このコードは最低一度は実行されます。"); result++; } while (result < 5);
このコードでは、result
の初期値は既に条件result < 5
を満たしていませんが、do...while
ループの性質上、コードブロックは一度実行されます。