Javascript 带有| |的If语句没有任何作用
在某种背景下, 我正在做一个游戏,你必须猜一个随机生成的数字,介于100万和100万之间。我试图让它,如果用户输入的东西不是一个数字,超过100万,或低于零,它将显示一个错误警告。最后一个elseif语句应该这样做,但没有这样做。我尝试了几次修改,包括针对每个禁止案例的单独else if语句,但都不起作用Javascript 带有| |的If语句没有任何作用,javascript,Javascript,在某种背景下, 我正在做一个游戏,你必须猜一个随机生成的数字,介于100万和100万之间。我试图让它,如果用户输入的东西不是一个数字,超过100万,或低于零,它将显示一个错误警告。最后一个elseif语句应该这样做,但没有这样做。我尝试了几次修改,包括针对每个禁止案例的单独else if语句,但都不起作用 <script type = "text/javascript"> var randomNumber = Math.floor(Math.random(
<script type = "text/javascript">
var randomNumber = Math.floor(Math.random() * 1000000 + 1);
var count = 0;
var x = 1000000
console.log(randomNumber)
document.getElementById("submitguess").onclick = function(){
var userGuess = document.getElementById("guessField").value;
console.log(userGuess)
if(userGuess == randomNumber)
{
if (count < 10) {
document.getElementById('higherOrLower').innerHTML = '<div class="powerupstyling"><a class="facethebossstyling">YOU BEAT THE GAME. CONGRATS !</a></div>'
}
else if (count > 10) {
document.getElementById('higherOrLower').innerHTML = "<center>grats you got it in " + count + " tries. Unfortunately, you didn't quite beat the game. Aim for 10 tries or lower.</center>"
}
}
else if (userGuess > randomNumber) {
count++;
document.getElementById('higherOrLower').innerHTML = '<br><div class="powerupstyling"><a class="gostyling">go lower</a></div>'
document.getElementById('countCounter').innerHTML = "<center>tries: " + count + "</center>";
}
else if (userGuess < randomNumber) {
count++;
document.getElementById('higherOrLower').innerHTML = '<br><div class="powerupstyling"><a class="gostyling">go higher</a></div>'
document.getElementById('countCounter').innerHTML = "<center>tries: " + count + "</center>";
}
else if (userGuess >= 1000000 || userGuess =< 0 || userGuess == "") {
alert('input a valid number !')
}
}
</script
var randomNumber=Math.floor(Math.random()*1000000+1);
var计数=0;
var x=1000000
console.log(随机数)
document.getElementById(“submitguess”).onclick=function(){
var userGuess=document.getElementById(“guessField”).value;
log(userGuess)
if(userGuess==随机数)
{
如果(计数<10){
document.getElementById('higherOrLower').innerHTML='你赢了,恭喜你!'
}
否则,如果(计数>10){
document.getElementById('higherOrLower').innerHTML=“grats您是通过“+count+”尝试获得的。不幸的是,您没有完全击败游戏。目标是尝试10次或更少。”
}
}
如果(userGuess>randomNumber){
计数++;
document.getElementById('higherOrLower')。innerHTML='
降低'
document.getElementById('countCountCounter').innerHTML=“trys:”+count+”;
}
else if(用户猜测<随机数){
计数++;
document.getElementById('higherOrLower')。innerHTML='
更高'
document.getElementById('countCountCounter').innerHTML=“trys:”+count+”;
}
如果(userGuess>=1000000 | | userGuess=<0 | | userGuess==”),则为else{
警报('输入有效数字!')
}
}
在检查userGuess
是否高于或低于randomNumber
之前,必须先写入最后一个,否则为
这是因为当userGuess
低于0或超过1.000.000时,它将始终被捕获,否则如果s检查userGuess
是否低于或高于randomNumber
。因此,将永远无法到达最后一个else if
正确的顺序是:
检查用户是否猜对了
检查输入是否错误。
检查用户是否猜得太高
检查用户是否猜得太低
但你做到了:
检查用户是否猜对了
检查用户是否猜得太高
检查用户是否猜得太低
检查输入是否错误。
请执行以下操作:
var randomNumber=Math.floor(Math.random()*1000000+1);
var计数=0;
var x=1000000
console.log(随机数)
document.getElementById(“submitguess”).onclick=function(){
var userGuess=document.getElementById(“guessField”).value;
log(userGuess)
if(userGuess==随机数)
{
如果(计数<10){
document.getElementById('higherOrLower').innerHTML='你赢了,恭喜你!'
}
否则,如果(计数>10){
document.getElementById('higherOrLower').innerHTML=“grats您是通过“+count+”尝试获得的。不幸的是,您没有完全击败游戏。目标是尝试10次或更少。”
}
}
如果(userGuess>=1000000 | | userGuess随机数){
计数++;
document.getElementById('higherOrLower')。innerHTML='
降低'
document.getElementById('countCountCounter').innerHTML=“trys:”+count+”;
}
else if(用户猜测<随机数){
计数++;
document.getElementById('higherOrLower')。innerHTML='
更高'
document.getElementById('countCountCounter').innerHTML=“trys:”+count+”;
}
}
你的条件句有几个问题
else if (userGuess > randomNumber)
{ ... }
这将处理所有数字,甚至是大于1000000的数字
else if (userGuess < randomNumber)
{ ... }
else if(userGuess
这将处理所有数字,即使是小于0的数字
因此,您的最后一个条件将只捕获空白输入(这可能更好地表示为转换为字符串或bool)
此外,正如对您的问题的评论中所指出的,正确的小于或等于
语法是
你可以:
else如果(userGuess>=1000000 | | userGuess=<0 | | userGuess==”){
但它是这样的:
else if(userGuess>=1000000 | | userGuess 10){
document.getElementById('higherOrLower').innerHTML=“grats您是通过“+count+”尝试获得的。不幸的是,您没有完全击败游戏。目标是尝试10次或更少。”
}
}
如果(userGuess>randomNumber){
计数++;
document.getElementById('higherOrLower')。innerHTML='
降低'
document.getElementById('countCountCounter').innerHTML=“trys:”+count+”;
}
else if(用户猜测<随机数){
计数++;
document.getElementById('higherOrLower')。innerHTML='
更高'
document.getElementById('countCountCounter').innerHTML=“trys:”+count+”;
}
else if(userGuess>=1000000 | | userGuessuserGuess=<0
是无效语法。(有趣的是,我们刚才也有同样的语法错误…)上述三种情况都适用于所有情况。您需要先检查最后一种情况,然后再检查其他情况。在将输入与radon数进行比较之前,应先进行输入验证。仍然无法捕捉到userGuess
大于1000000或小于0的情况。