2017-04-09 5 views
2

数字を入力するたびに、数字が他の数字よりも大きくても数字が低すぎると表示されます。私がゼロを入力するか全く何も入力しないと、あなたの番号が低すぎると言います。私はそれを得ることができません私はコードを一度に見てきましたが、私はまだ何の問題も見つけていません。JavaScriptの数値ゲームは私の推測とはどういうことでしょうか?

はここに私のコードである:

var answer = prompt("Guess a number between 1 and 100"); 
var number = confirm(Math.round(Math.random()*100)); 

if (number === answer) { 
    confirm("You win!"); 
} else if(number < answer){ 
    confirm("Your number was too low!"); 
} else if (number > answer) { 
    confirm("Your number was too high!"); 
} 
+0

を –

+0

@ Paul:これは問題ではない –

答えて

1

var answer = prompt("Guess a number between 1 and 100"); 
 
var ai_nswer = Math.round(Math.random() * 100); 
 
var number = confirm(ai_nswer); 
 

 
if (ai_nswer == answer) { 
 
    confirm("You win!"); 
 
} else if(ai_nswer > answer){ 
 
    confirm("Your number was too low!"); 
 
} else if (ai_nswer < answer) { 
 
    confirm("Your number was too high!"); 
 
}

ロジックにも問題があった、適切ではなかったです。あなたのif条件が高い/低いために間違っていた。 confirmは入力値ではなくブール値を返すので、ランダム回答の値を一時的な値に格納して確認する必要があります。

1

confirm関数ブール(true又はfalse)を返し、そう実際に下の行におけるnumber変数は、ブール値を保持します。

var number = confirm(Math.round(Math.random()*100)); 

これはあなたのロジックを台無しにしました。

単純にそれを変更します。

var number = Math.round(Math.random()*100); 
confirm(number); 

別の予告

prompt("Guess a number between 1 and 100");ので、100%明確にするために、あなたは数に値をキャストする必要があり、文字列を返します。

var answer = Number(prompt("Guess a number between 1 and 100")); 
1

answer〜整数値を最初にparseInt()関数を使用します。使用しているconfirm方法は別に

var answer = parseInt(prompt("...")); 
1

変数answernumberは、VAR answerで変換用のparseIntのために、同じ種類を持って私の答えを参照されていません:あなたは文字列を数値に比較しようとしている

var answer = prompt("Guess a number between 1 and 100"); 
 
var number = confirm(Math.round(Math.random()*100)); 
 
answer=parseInt(answer); 
 
if (number === answer) { 
 
    confirm("You win!"); 
 
} else if(number < answer){ 
 
    confirm("Your number was too low!"); 
 
} else if (number > answer) { 
 
    confirm("Your number was too high!"); 
 
}

関連する問題