JavaScript»基礎»くりかえしのwhile文 数あてゲーム

ファイル名: js-basic/quest_00169.html

数あてゲームを作ってください。1から100までのランダムな数をひとつ作って、その数が何かを当てるゲームです。正解したときに、何回で当てられたかを表示します。入力された数が正解より小さければ「もっと大きい数です」、大きければ「もっと小さい数です」とアラートを出し、正解するまでくりかえしプロンプトを出してください。

プログラムを実行

ソースコード

const num = Math.floor(Math.random() * 100) + 1;
let count = 0;
let answer;

while (answer !== num) {
  answer = prompt("さていくつでしょう?");
  answer = parseInt(answer);
  count++;
  if (answer < num) {
    alert("もっと大きい数です");
  } else if (answer > num) {
    alert("もっと小さい数です");
  }
}
alert("正解! 正解までにかかった回数: " + count + "回");

解説

“while”文とは、”for”文と同じく処理を繰り返すための構文になります。
“while”文の書き方はシンプルです。直後の()内に繰り返しを続ける条件を記述します。
その後{}内に繰り返したい処理を記述します。
“while”文はこれだけです。ただし、繰り返しの処理中に何かを変化させ、それを繰り返しの条件に関連付けしないと
無限ループを起こしてしまいます。これが発生してしまうと大変なことになるのでしっかりと注意しましょう。

“for”文との使い分けですが、
・最初から繰り返す回数が決まっているとき → “for”文
・繰り返す回数が決まっていない(こちらの入力などによって変わる)とき → “while”文
このように使い分けされます。

お手本のソースでは”if”文と組み合わせて、入力された数字によって動きを変化させています。
ソースをよく見て、動きを確認しましょう。