Оператор переключения внутри оператора if не выполняется - PullRequest
1 голос
/ 06 августа 2020

Первый оператор switch работает нормально, когда initializePlayers равен 4, но когда выполняется второе условие if, он будет console.log («было <4»), но затем пропустил мой оператор переключения? Я смущен этим, потому что, если initializePlayers <4, не следует ли запускать этот случай в операторе switch? </p>

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

1 Ответ

1 голос
/ 06 августа 2020

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;
  }
}
...