簡體   English   中英

為什么這種情況不能正常工作?

[英]Why is this condition not working properly?

我必須做一個數字猜謎游戲,在這里您有3次嘗試猜測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語句將不會執行。 如果可能的話,您可能需要將自己分開。

<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>

問題出在您的check 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;
  • 你可以在一行上得到一個隨機數

  • 將邏輯分為兩層-在您進行猜測時檢查是否猜測正確,否則返回“沒有猜測”消息

jsFiddle

您必須影響每次attempt變量try:

<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>

工作提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM