while 文とは何か
while 文は「条件が true のあいだ、処理を繰り返す」ためのループ構文です。繰り返し回数が決まっていないとき(「条件を満たす限り続けたい」ケース)に向いています。条件が最初から false なら、一度も実行されません。
基本構文と動き
while (条件) { 処理 } の形で書きます。ループが1回終わるたびに、もう一度「条件」をチェックし、true なら次の周回へ、false なら終了します。
let i = 0;
while (i < 3) {
console.log(i);
i++; // 条件がいつか false になるように更新する
}
// 出力: 0, 1, 2
JavaScriptこの例では、i を毎回増やすことで、最終的に i < 3 が false になり、ループが止まります。
例題で理解する
入力が空でなくなるまで繰り返す
let input = "";
while (input === "") {
// 実際のアプリではここでユーザー入力を受け取る想定
input = "hello"; // 仮の入力
}
console.log(input); // "hello"
JavaScript「空ならもう一度」のような「条件が整うまで待つ」処理に向いています。
カウンターの増減で条件を制御
let count = 5;
while (count > 0) {
console.log(`残り: ${count}`);
count--; // 0になったら終了
}
// 出力: 残り: 5, 4, 3, 2, 1
JavaScript配列をインデックスで走査
const items = ["a", "b", "c"];
let idx = 0;
while (idx < items.length) {
console.log(items[idx]);
idx++;
}
// 出力: a, b, c
JavaScriptbreak と continue の使い方
break でループを途中終了
let n = 1;
while (n <= 10) {
if (n === 4) break; // 条件を満たしたら終了
console.log(n);
n++;
}
// 出力: 1, 2, 3
JavaScriptcontinue で今回の周回だけスキップ
let n = 0;
while (n < 5) {
n++;
if (n % 2 === 0) continue; // 偶数はスキップ
console.log(n);
}
// 出力: 1, 3, 5
JavaScriptdo…while との違い
do...while は「少なくとも1回は実行」されるループです。先に処理を実行してから、最後に条件をチェックします。
let x = 10;
do {
console.log("必ず1回は実行される");
x--;
} while (x < 5); // ここは false なので1回で終了
JavaScript- while: 条件が最初にチェックされる。条件が false なら0回。
- do…while: 処理が先に1回実行される。条件次第で2回目以降が続く。
よくある落とし穴と回避策
無限ループに注意
条件が永遠に true のままだと止まりません。ループ内で状態を更新し、いつか必ず条件が false になるように設計します。
// 悪い例(更新がない)
let i = 0;
while (i < 3) {
console.log(i); // i を更新しないので止まらない
}
// 良い例(更新する)
let j = 0;
while (j < 3) {
console.log(j);
j++;
}
JavaScript条件の再確認
条件は毎周回ごとに再評価されます。外部状態(配列の長さ、フラグの変化など)に依存する場合、ループ内でその状態が適切に変わるかを意識してください。
まとめ
while 文は「条件が成り立つ限り続ける」ループで、回数が未定な処理に向いています。必ず「いつか条件が false になる更新」を入れて無限ループを避け、必要に応じて break や continue を使い分けましょう。1回は必ず実行したい場合は do...while が適しています。
