为什么这个条件不能正常工作

Why is this condition not working properly?

本文关键字:工作 常工作 条件 不能 为什么      更新时间:2023-09-26

我要做一个数字猜谜游戏,你要猜三次1到5之间的数字。每次猜错后,它会显示你还剩下多少次尝试。当你猜对了,你就会收到一条祝贺信息。当你猜不出答案时,你会得到一条消息。然而,当你猜不出要跑的时候,我无法得到消息。为什么它不运行?

<script type="text/javascript">
    var tries=3;
    alert("Guess the number I'm thinking of between 1 and 5. You've got 3  tries.");
    var attempt =  prompt(tries+" tries remaining. Enter your guess.");
    var randomnumber = Math.random() * 5; 
    randomnumber = Math.ceil(randomnumber);
    while (tries>=2){
        if(attempt!=randomnumber){
            tries--;
            prompt("Wrong! You have " + tries + " left ");
        }
        else if(tries<1){
            alert("You have no tries left");
        }
        else {
            alert("Congratulations! You guessed the correct number");
            return;
        }
    }
</script>

只有在尝试次数超过2次或恰好2次时才进入循环。否则,if语句不会被执行。你可能需要把if和while分开。

<script type="text/javascript">
    var tries=3;
    alert("Guess the number I'm thinking of between 1 and 5. You've got 3  tries.");
    var attempt =  prompt(tries+" tries remaining. Enter your guess.");
    var randomnumber = Math.random() * 5; 
    randomnumber = Math.ceil(randomnumber);
    while (tries-1 > 0){
        if(attempt!=randomnumber){
            tries--;
            prompt("Wrong! You have " + tries + " left ");
        }
        else {
            alert("Congratulations! You guessed the correct number");
            return;
        }
    }
    alert("You have no tries left");
</script>

您的检查tries>=2有问题。我已经修改了你的代码一点,它的工作原理要求

var tries = 3;
alert("Guess the number I'm thinking of between 1 and 5. You've got 3  tries.");
var attempt = prompt(tries + " tries remaining. Enter your guess.");
var randomnumber = Math.floor(Math.random() * 5);
while (tries-1 > 0) {
    if (attempt != randomnumber) {
        tries--;
        prompt("Wrong! You have " + tries + " left ");
    } else {
        alert("Congratulations! You guessed the correct number");
        return;
    }
}
alert("You have no tries left");
return;
  • 你可以在一行得到一个随机数

  • 将逻辑划分为两层-当你猜测时检查你是否猜对了,否则返回"no guess left"消息

jsFiddle

您必须影响attempt变量的每次尝试:

<script type="text/javascript">
    var tries=3;
    alert("Guess the number I'm thinking of between 1 and 5. You've got 3  tries.");
    var randomnumber = Math.random() * 5; 
    randomnumber = Math.ceil(randomnumber);
    var attempt;
    var success = false;
    while (tries>0 && !success){
        attempt = prompt(tries+" tries remaining. Enter your guess.");
        tries--;
        if(attempt!=randomnumber){
            alert("Wrong! You have " + tries + " left ");
        } else {
            success = true;
        }
    }
    if(success){
        alert("Congratulations! You guessed the correct number");
    } else {
        alert("You have no tries left");
    }
</script>
工作小提琴