Как бы получить цикл while для завершения, когда пользователь вводит "нет"
У меня есть это время цикла для класса Блэкджек:
while (playerSum < 21) {
System.out.println("Would you like another card?");
String input;
System.out.flush();
input = in.readLine();
if (input.equalsIgnoreCase("yes")){
int card3;
Random r3 = new Random();
card3 = r3.nextInt(11 - 2 + 1) + 2;
switch (card3) {
case 2: System.out.println("You were dealt a Two"); break;
case 3: System.out.println("You were dealt a Three"); break;
case 4: System.out.println("You were dealt a Four"); break;
case 5: System.out.println("You were dealt a Five"); break;
case 6: System.out.println("You were dealt a Six"); break;
case 7: System.out.println("You were dealt a Seven"); break;
case 8: System.out.println("You were dealt a Eight"); break;
case 9: System.out.println("You were dealt a Nine"); break;
case 10: System.out.println("You were dealt a Ten"); break;
case 11: System.out.println("You were dealt a Ace"); break;
}
playerSum += card3;
}
}
Я хочу, чтобы цикл заканчивался, когда пользователь вводит "нет", когда его спрашивают, хочет ли он другую карту. В настоящее время, если я введу что-либо, кроме "да", он продолжит спрашивать: "Хотите другую карту?". Я понимаю, почему это происходит, но я не знаю, как это исправить. Заранее спасибо.
2 ответа
Решение
Добавьте else в конец if-Statement и выйдите из цикла.
if (input.equalsIgnoreCase("yes")){
int card3;
Random r3 = new Random();
card3 = r3.nextInt(11 - 2 + 1) + 2;
switch (card3) {
case 2: System.out.println("You were dealt a Two"); break;
case 3: System.out.println("You were dealt a Three"); break;
case 4: System.out.println("You were dealt a Four"); break;
case 5: System.out.println("You were dealt a Five"); break;
case 6: System.out.println("You were dealt a Six"); break;
case 7: System.out.println("You were dealt a Seven"); break;
case 8: System.out.println("You were dealt a Eight"); break;
case 9: System.out.println("You were dealt a Nine"); break;
case 10: System.out.println("You were dealt a Ten"); break;
case 11: System.out.println("You were dealt a Ace"); break;
}
playerSum += card3;
} else {
break;
}
Примечание: это вырвется из цикла, когда пользователь введет что-то отличное от "да". Если вы хотите выйти только на нет, используйте else if
,
Вы можете просто исправить это, добавив
break;
Так будет выглядеть
if (no) { break;}
Надеюсь это поможет.