我的功能不会重启的原因是什么?

时间:2015-10-26 02:32:29

标签: javascript

一切正常但是当我尝试重新运行该功能时它会停留在警报框上我做错了什么,任何人都可以解释为什么会发生这种情况。您可以查看代码中的注释以查看该区域即将获得这个探索

hg commit --close-branch

1 个答案:

答案 0 :(得分:0)

您可以设置一个标志并将所有内容放入while循环中。

var finished = false;

var compare = function (choice1, choice2) {
   if (choice1 === choice2) {
       finished = true;
       return "The result is a tie!";
   } else if (choice1 === "rock") {
       if (choice2 === "scissors") {
       finished = true;
       return ("rock wins");
    } else {
       finished = true;
       return ("paper wins");
    }

} else if (choice1 === "paper") {
    if (choice2 === "rock") {
        finished = true;
        return ("paper wins");
    } else {
        finished = true;
        return ("scissors wins");
    }
} else if (choice1 === "scissors") {
    if (choice2 === "rock") {
        finished = true;
        return ("rock wins");
    } else {
        finished = true;
        return ("scissors wins");
    }
} else if (choice1 != "rock" && "paper" && "scissors") {
    alert("not a viable input,please try again");
    finished = false;
    //compare(userChoice, computerChoice); This causes recursion. Not necessary.

}

};

while (!finished) {
   var userChoice = prompt("Do you choose rock, paper or scissors?");
   var computerChoice = Math.random();

if (computerChoice < 0.34) {
    computerChoice = "rock";
} else if (computerChoice <= 0.67) {
    computerChoice = "paper";
} else {
    computerChoice = "scissors";
}

console.log("Computer: " + computerChoice);

alert(compare(userChoice, computerChoice));
}

看看这个小提琴http://jsfiddle.net/7p94axhp/