`w

`while`ループ の JavaScript

8個の演習

`while`ループについて

基本的な構文

whileループを使うと、ある条件が満たされている間、コードを繰り返し実行できます。

whileループは、whileキーワードのあとに、丸括弧(())で囲んだ条件と、ループの_本体_を含み波括弧({})で囲んだブロックを続けて書きます。

while (condition) {
  // code that is executed repeatedly as long as the condition is
  // true
}

JavaScriptにはdo-whileループもあります。 こちらは、ループの本体を実行したあとに条件をチェックします。 条件が本体の中での処理の結果に依存する場合に便利です。

do {
  // The code here will always be executed once and then
  // repeatedly while the condition is true.
} while (condition);

break

ループの本体の中では、breakキーワードを使ってループの実行を完全に止められます。 これは、条件にtrueを指定する場合と組み合わせてよく使われます。 そうすれば、ループをいつ止めるかを、ループ本体のどこからでも制御できます。

const winningNumber = 7;

while (true) {
  const num = readUserGuess();
  if (num === winningNumber) {
    break;
  }
}

breakキーワードは、ループの中に入れ子になった関数の中では使えません。例については、MDNのドキュメントを参照してください。

continue

breakとは対照的に、continueキーワードは現在の繰り返しの実行だけを止め、次の繰り返しに進みます。 continueを使うと、ループ本体の大部分をif文で囲まずに済むこともよくあります。

let i = 0;

while (i < 100) {
  i = i + 2;

  if (i % 3 === 0) {
    continue;
  }

  // The code here will only be executed when i was not divisible
  // by 3 in the check above.
}

無限ループ

ループの条件が常に満たされ、ループ本体の中でbreak文やreturn文に到達しない場合、(理論上)永遠に繰り返されるループができてしまいます。 このような実行は、外側から終了させるしかありません。 無限ループになるコードが動く環境によって、自動的に終了されることもあれば、手動で止めなければならないこともあります。

let i = 0;

while (i < 100) {
  if (i % 3 === 0) {
    continue;
  }

  i = i + 2;
}

// This loop runs forever since the variable i does not change
// anymore after it is divisible by 3 the first time.

この程度のおもちゃのような例では、無限ループを見つけるのは簡単に思えるかもしれません。しかし、もっと複雑なコードでは、いつもそう簡単とは限りません。 条件が最終的にfalseになるのか、break文やreturn文に到達するのかを、しっかり考えるのがよい習慣です。

GitHubで編集 リンクは新しいウィンドウまたはタブで開きます

`while`ループを学習する