【发布时间】:2014-10-12 19:20:50
【问题描述】:
我遇到了一个被跳过的语句的问题,还有一个无限循环,我无法弄清楚为什么它是无限的,因为它似乎在给出正确的输入时结束。
这里有一个小提琴,所以你可以更容易地理解发生了什么:http://jsfiddle.net/z03ffn2j/
在 else 语句中,我正在运行一个 while 循环,只要当前玩家尝试在 askPlayer 函数中问自己问题,该循环就会运行。所以如果一个玩家被命名为“chris”并且那个玩家输入了“chris”,提示符就会再次出现。
一切都很好,但是......但是,当我第一次输入“chris”时,它会重新提示因为是我自己,然后我输入“tommy”,它不会跳过var code 语句。所以我的问题是,为什么我第一次输入正确的名字时会跳过它,但如果我先输入一个错误的名字然后输入一个正确的名字就不会?
var playerArray = []; //Contains player objects
var turn = 0; //Keeps track of whose turn it is
function askPlayer() {
var askedPlayer = prompt('Which player do you want to ask?');
return askedPlayer;
}
//While the pairCount is less than 13(maximum possible pairs)
while (pairCount < maxPairs) {
if (playerArray[turn].totalCards == 0) {
drawCard();
}
else {
var wrongInput = true;
var player = askPlayer();
while (wrongInput) {
if (player === playerArray[turn].name) {
player = askPlayer();
if (player != playerArray[turn].name) {
wrongInput = false;
}
}
}
var card = askCard(player); //<--- This statement gets skipped
}
pairCount = 13; //Prevents infinite loop for now
turn++;
if (turn == playerNum - 1) { //If everyone has made their turn, reset to player1 again
turn = 0;
}
}
【问题讨论】:
标签: javascript