Пожалуйста, позвольте мне сначала в устной форме описать проблему.
Проблема в том, что вы видите на консоли.
Кодирование выполняется с помощью сканера и оператора switch.
- Он спрашивает пользователя, кому вы хотите дать часть MP. (макс. MP каждого персонажа составляет 30)
- Я хотел протестировать и попробовал 2,3,2,4 входных данных, чтобы увидеть, что он скажет, и, как вы могли видеть, он говорит: «MP у Jongwoo полон. Выберите другого персонажа ...» и так же для всех другие персонажи, как и ожидалось, за исключением Кёнгсока, чей MP в настоящее время равен 15. Так что, когда я ввожу 1 (для Кёнсока), он говорит, что MP Кёнгсока исцелен, и внезапно остальной персонаж делает то же самое. (пожалуйста, не обращайте внимания на количество зажившего, мне нужно это исправить)
Одна вещь, которую я понял, заключалась в том, что они были напечатаны в порядке, указанном для проверки номеров: 2, 3, 2, 4.
Таким образом, ввод, оставшийся в консоли, стал вводом, и оператор switch принимает его как ввод.
Я не знаю, почему это так.
У меня много операторов switch, и это не единственный оператор switch, имеющий эту проблему. и следующий код является кодом для оператора switch.
public static void chooseMMCha1(Character member) {
boolean wrongAnswer;
do {
wrongAnswer = false;
Scanner sc = new Scanner(System.in);
while(!sc.hasNextInt()) {
sc.next();
}
switch (sc.nextInt()) {
case 1:
chooseMMCha(chosenMember[0], member);
break;
case 2:
chooseMMCha(chosenMember[1], member);
break;
case 3:
chooseMMCha(chosenMember[2], member);
break;
case 4:
chooseMMCha(chosenMember[3], member);
break;
case 5:
chooseMMCha(chosenMember[4], member);
break;
case 6:
turn(member);
break;
default:
System.out.println("From 1 to 6");
wrongAnswer = true;
break;
}
}while(wrongAnswer);
}