for文とif文を組み合わせたクイズアプリ。for(?????)
JavaScriptの課題でfor文とif文を組み合わせたクイズアプリを製作しています。
<1>alertで1から5までの数値を当てるよう指示する(答えは2)
<2>okを押すとpromptで1から5までのどれかを入力するよう出てくる
<3>外れると、間違っているので再度答えを入力するようにというpromptが出てくる
<4>当たればalertで「おめでとう!」などのメッセージが現れゲームが終了する
という流れを作りたいです。
for文についてどうしても理解が追いつかないのですが、for文は繰り返す回数が決まっている時に使うものですよね?この課題の場合確かに選択肢は5つしかないですが、2が当たるまでは無限に続くはずですよね?それをどうやってfor文で表せばいいのかさっぱりわかりません。
またfor/for in/for ofのどれを使うべきなのかも不明です・・・
そして今のコードのままだと、何を入力しても prompt ('Please guess 1 to 5!') が表示される状況になっています。
下に自力で書いてみたコードがありますが全然違う気がしてるので都度指摘して頂けると助かります;
// alertで'You got 5 guesses. Guess 1 to 5'と言うメッセージを表示させ、1から5までの数値を当てるよう指示する。
alert ('You got 5 guesses. Guess 1 to 5');
// 答えの数値を2で用意
let correctAnswer = 2;
let wrongAnswers = [1, 3, 4, 5]
// promptで'What do you guess?'と言うメッセージとともに、記入欄を表示させる
let result = prompt('What do you guess?');
console.log(result);
// forループで1から5までの数値で、答えの2が当たるまで推測を促すpromptを表示させる。
// ヒント1:if文とも組み合わせて、推測が当たった場合はalertで'Good job! See what happens next :)'を表示。当たったらゲーム終了にする。
// ヒント2:外れたらpromptで'Ops! Maybe, another try?'のメッセージとともに記入欄を表示。
for (;;) {
if (result === correctAnswer) {
alert ('Good job! See what happens next :)');
break;
} else if (result === wrongAnswers) {
prompt ('Ops! Maybe, another try?');
} else {
prompt ('Please guess 1 to 5!')
}
}
いつもはメンターの方がいらっしゃるのですがその方がホリデーでいらっしゃらず、どなたかお力貸していただけると幸いです。よろしくお願いします。