Javascript 带有| |的If语句没有任何作用

Javascript 带有| |的If语句没有任何作用,javascript,Javascript,在某种背景下, 我正在做一个游戏,你必须猜一个随机生成的数字,介于100万和100万之间。我试图让它,如果用户输入的东西不是一个数字,超过100万,或低于零,它将显示一个错误警告。最后一个elseif语句应该这样做,但没有这样做。我尝试了几次修改,包括针对每个禁止案例的单独else if语句,但都不起作用 <script type = "text/javascript"> var randomNumber = Math.floor(Math.random(

在某种背景下, 我正在做一个游戏,你必须猜一个随机生成的数字,介于100万和100万之间。我试图让它,如果用户输入的东西不是一个数字,超过100万,或低于零,它将显示一个错误警告。最后一个elseif语句应该这样做,但没有这样做。我尝试了几次修改,包括针对每个禁止案例的单独else if语句,但都不起作用

<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 | | userGuess
    userGuess=<0
    是无效语法。(有趣的是,我们刚才也有同样的语法错误…)上述三种情况都适用于所有情况。您需要先检查最后一种情况,然后再检查其他情况。在将输入与radon数进行比较之前,应先进行输入验证。仍然无法捕捉到
    userGuess
    大于1000000或小于0的情况。