Я новичок в Java.
Позвольте мне описать, как проблемы возникают здесь.
Я выберу 5 символов, и на выбор будет 10 символов (Все они созданы)уже)
Чтобы сделать его кратким, я поместил здесь только два символа (переключатель).
Проблема:
- Он спрашивает пользователя, какой символ яхотел бы выбрать.
- Я ввожу 1, чтобы выбрать Джеймса
- Я снова ввожу 1 , чтобы проверить, работает ли он нормально.
- Должно быть сказано: «Вы уже выбрали этого персонажа ...», потому что я уже выбрал Джеймса.а затем из-за метода searchChosen он возвращает меня к методу charChooseAsk, чтобы я мог выбрать снова.(Очень важно: здесь 1 , который я ввожу для проверки, остается в консоли)
- Никаких проблем не возникает, пока я не выберу эти 5 символов
- После того, как все сделано, всеВнезапно, он автоматически берет 1 (оставшийся в консоли для тестирования) и снова использует его в качестве входа.и это делает ошибку ArrayIndexOutofBoundsException.
Что мне делать, чтобы этого не случилось?Надеюсь, я описал достаточно хорошо .. Спасибо.
**public static void searchChoose(Character member)** {
for (Character a : chosenMember) {
if (a == member) {
System.out.println("**You chosen that character already. Please choose different character.");
charChooseAsk(chosenMember);
}
}
}
**public static void charChooseAsk(Character[] memberArr)** {
int i = 0;
while (i < memberArr.length) {
Scanner sc = new Scanner(System.in);
while (!sc.hasNextInt()) {
sc.next();
}
select = sc.nextInt();
switch (select) {
case 1:
if (i == 0) {
memberArr[i] = James;
i++;
} else {
searchChoose(James);
memberArr[i] = James;
i++;
}
break;
case 2:
if (i == 0) {
memberArr[i] = Alex;
i++;
} else {
searchChoose(Alex);
memberArr[i] = Alex;
i++;
}
break;