我的JavaScript if循环if / else语句出了什么问题?

时间:2016-12-28 15:15:31

标签: javascript loops

为什么我的代码不起作用?当我正确输入数字时,它不会显示window.alert它是正确的。

问题在于:编写一个程序,选择1到10之间的随机数。给用户5个猜测(使用循环)来猜测数字。如果他们错了,请告诉他们。如果他们是对的,请告诉他们并退出循环。在程序结束时,向他们显示实际数字。

<script>
    var num = Math.floor(Math.random()*10 + 1);

    var guess = parseInt(window.prompt("Enter a number!"));
    for (var x=1; x<=5; x++) {
         if (num == guess) {
             window.alert("You are right!");
             break;
         }
         else {
             window.prompt("You were wrong, try again!");
             continue;
         }
    }
    document.write("The number was "+num);
</script>

4 个答案:

答案 0 :(得分:1)

你没有使用随后的猜测。当您在循环内重新提示时,需要更新guess

    guess = parseInt(window.prompt("You were wrong, try again!"));
//  ^^^^^^^^^^^^^^^^^-------------------------------------------^

示例:

var num = Math.floor(Math.random() * 10 + 1);

var guess = parseInt(window.prompt("Enter a number!"));
for (var x = 1; x <= 5; x++) {
  if (num == guess) {
    window.alert("You are right!");
    break;

  } else {
    guess = parseInt(window.prompt("You were wrong, try again!"));
    continue;

  }
}

console.log("The number was " + num);

另外:在页面的主要解析完成后(或者,实际上),不要使用document.write。相反,使用DOM向页面添加元素以显示您想要显示的内容。

此外,由于您的循环中没有其他内容,因此continue是不必要的。

然后就是Ben Snaize's point:代码实际上让用户猜了六次,虽然它会抛弃最后的猜测。

答案 1 :(得分:1)

根据@ Milaci的答案版本,只有5个猜测。此外,它现在正确使用最后一次猜测。

&#13;
&#13;
.gitignore
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您正在生成一个随机数,然后进行一次猜测,然后循环五次以查看这两个数字是否相同。你应该在循环中得到一个新的猜测。

答案 3 :(得分:0)

你应该使用两次猜测,一次是第一次,另一次是在for循环中,取一个用户插入的值。我使用静态5值来促进测试

 var num=5;//Math.floor(Math.random()*10+1);
 var guess=parseInt(window.prompt("Enter a number!"));

for(var x=1; x<=5; x++){

    if (num==guess){
        window.alert("You are right!");
        break;

    }

    else{
        guess=parseInt(window.prompt("You were wrong, try again!"));
    } 
}

document.write("The number was "+num);