【初心者向け】JavaScriptのwhile文・do while完全ガイド
プログラミング
公開日: 2026/01/26
目次
※この記事にはプロモーションを含みます
はじめに
JavaScriptにおけるループ処理(繰り返し処理)は、反復作業を簡潔に記述するための基本技術です。
本記事では、while文とdo…while文に焦点を当て、基本構文、実行の流れ、注意点、そして実装での使いどころまでを丁寧に解説します。
初心者がつまずきやすい点を避けるためのチェック項目や、業務で安全かつ効率的に使用するための判断基準も紹介します。
while文とは
基本構文
while文は、条件式が真(true)の間、繰り返し処理を行う構造です。
基本形
while (条件式) {
繰り返し実行する処理
}
条件が最初に評価されるため、条件が初回で偽なら処理は一度も実行されません。
条件評価のタイミングを正確に理解することが重要です。
実行の流れ
while文の実行は次の順序で行われます。
1.条件式を評価する。
2.条件がtrueなら本体を実行し、再度条件式へ戻る。
3.条件がfalseになったらループを終了する。
この流れから、初期化 → 条件評価 → 本体 → 更新という典型的なパターンになることが多いです。
カウンターを用いる場合、初期化と更新(インクリメント/デクリメント)を忘れないことが重要です。
do…while文とは
基本構文
do…while文は、まず本体を一度実行してから条件式を評価する特徴があります。
基本形
do {
最低1回は実行される処理
} while (条件式);
こちらは、処理が必ず1回は実行されるため、ユーザー入力の確認や初期の一回処理に適しています。
while文との違い
主な違いは評価タイミングです。
while文
先に条件を評価 → 条件が満たされていれば本体を実行
do…while文
本体を一度実行 → その後条件を評価
選択基準は「初回実行が必須かどうか」です。
初回実行が必須ならdo…while文、そうでなければwhile文を使うのが自然です。
while文とfor文の違い
ここまで while文と do…while文を解説しましたが、もう一つ、よく使われるループ構文として 「for文」 があります。
状況に応じて使い分けが必要になるため、ここで簡単に確認しておきましょう。
for文の基本
for文は、繰り返し回数が明確な場合に適したループ構文です。
初期化・条件判定・更新を1行でまとめられるため、ループの開始から終了までの流れがひと目でわかります。
for (let i = 0; i < 5; i++) {
繰り返したい処理
}
この例では、変数 i を 0 から 4 までインクリメント(足し算)しながら、合計5回ループが実行されます。
このように、for文は繰り返し回数が明確な場合に適しています。
使い分けの判断基準
for文は繰り返し回数が明確な場合に向き、while文は条件に応じて繰り返す処理に向きます。

状況に応じて適切なループを選ぶことで、コードの意図がわかりやすく、保守性も向上します。
実装での選び方
実務では読みやすさと安全性が最優先です。
そのため、以下の点を考慮して選択しましょう。
- 処理の意図が明確か(回数 or 条件)
- 無限ループのリスクを最小化できるか
- 可読性(チームメンバーが即読めるか)
どのループを選ぶか迷った場合は、まず 「意図がはっきりしているか」 を基準にすると、適切な構文を自然に選べます。
よくあるエラー例
無限ループの原因
無限ループはループ処理で最も頻繁に遭遇する問題です。
原因の代表例は次の通りです。
- カウンターの更新忘れ(例:i++を忘れる)
- 条件式が常にtrueとなる論理ミス
- 外部入力待ちで状態が変化しない(イベントの漏れ)
防止策として、必ず更新処理を明示し、デバッグ時には安全装置(最大反復数やタイムアウト)を入れることを推奨します。

バグを防ぐポイント
バグを未然に防ぐためには以下が有効です。
- 条件式を短く単純に保つ
- ループ内での状態変更を最小化する
- ログを適切に出力して実行フローを追跡する
- 単体テストで境界値を検証する
これらのポイントを意識しておくことで、予期しない挙動を事前に察知し、安定したコード品質を保つことにつながります。
実装での活用例
入力チェックで使うケース
ユーザーからの入力を繰り返し検証する場面でwhile/do…whileは有用です。
例えば、値が指定フォーマットに合致するまで再入力を促す処理など、ユーザーインタラクション(ユーザーの操作)があるケースで活躍します。
do…whileは「まず一度入力させてから判定する」場合に自然です。
実装例(擬似コード)
function isValidNumber(value) {
// 数字なら true、数字でなければ false を返す
return !isNaN(value);
}
let input;
do {
// 入力ダイアログを表示し、入力結果を input に代入
input = prompt("数値を入力してください");
} while (!isValidNumber(input));
// ← 数字でない限り、もう一度入力させる
このように do…while を使うと、ユーザーに必ず一度入力させてから条件をチェックできるため、入力確認の処理をシンプルに書くことができます。
繰り返し処理の最適化
大量データを扱う場合、ループ構文の書き方によっては処理が遅くなることがあります。

これらの対策を取り入れることで、処理の無駄を減らし、パフォーマンスを大きく向上させることができます。
まとめ
本記事では、while文とdo…while文の構文、実行の流れ、比較、エラー例、実務での活用方法を解説しました。
どちらを選ぶかの判断ポイントは 「いつ条件をチェックするか(最初に確認するか、処理のあとに確認するか)」 と 「最初の1回を必ず実行する必要があるかどうか」 です。
実装ではコードの読みやすさと安全性を優先し、無限ループにならないよう注意し、入力値が正しく処理できるかも確認するようにしてください。
JavaScriptを基礎から学びたい方にはWEBMASTERSがおすすめです。
初歩から実践的な内容まで段階的に学べる環境が整っており、構文理解から実務レベルの活用まで段階的にスキルを伸ばすことができます。
1人ではつまずきやすいポイントも丁寧にサポートしてくれるため、初心者でも安心してスキルアップを目指せます。