当initializePlayers为4时,第一个switch语句运行良好,但是当满足第二个if语句条件时,它将console.log(“ was <4”),但随后跳过我的switch语句?我对此感到困惑,因为如果initializePlayers为<4,它是否应该在switch语句中运行这种情况?
let humanPlayers = [];
//initialize the participants
initializePlayers = prompt("How many players? (1-4)");
console.log("value of initalPlayer" , initializePlayers);
if (initializePlayers == 4) {
for (i = 0; i <= initializePlayers; i++) {
console.log("the number was four!");
switch (i) {
case 0:
humanPlayers.push(Player1);
console.log(0);
break;
case 1:
humanPlayers.push(Player2);
console.log(1);
break;
case 2:
humanPlayers.push(Player3);
console.log(2);
break;
case 3:
humanPlayers.push(Player4);
console.log(3, humanPlayers);
break;
}
}
}
if (initializePlayers < 4) {
console.log("was < 4");
//initializing human objects first
switch (initializePlayers) {
case 1:
humanPlayers.push(Player1);
console.log(1, "1 human");
break;
case 2:
humanPlayers.push(Player2);
console.log(2, "2 humans");
break;
case 3:
humanPlayers.push(Player3);
console.log(3, "3 humans");
break;
}
}
答案 0 :(得分:1)
prompt
返回一个字符串,因此在每个switch
中,您应该使用字符串而不是数字。
if (initializePlayers < 4) {
console.log("was < 4");
//initializing human objects first
switch (initializePlayers) {
case '1':
humanPlayers.push(Player1);
console.log(1, "1 human");
break;
case '2':
humanPlayers.push(Player2);
console.log(2, "2 humans");
break;
case '3':
humanPlayers.push(Player3);
console.log(3, "3 humans");
break;
}
}