Я занимаюсь коммутационным корпусом & Входы сканера для моего выпускного экзамена. Однако я не знаю, почему первый вход сканера в случае 2 пропущен. Вот мой код:Java (Корпус коммутатора + входы для входов сканера)
Scanner scanner = new Scanner(System.in);
String list=" 1- A \n 2- B \n 3- quit \n Enter your choice";
System.out.println(list);
int choice= scanner.nextInt();
while (choice!=3){
switch(choice){
case 1:
System.out.println(" Option A ");
System.out.println(list);
choice = scanner.nextInt();
break;
case 2:
System.out.print (" Enter your name ");
String name=scanner.nextLine();
System.out.println(name);
System.out.println(list);
choice = scanner.nextInt();
break;
default:
System.out.println(" Invalid choice");
System.out.println(list);
choice = scanner.nextInt();
break;
}
}
Выход при вводе "2":
1-
2- B
3- бросить
Введите свой выбор
Введите ваше имя
1-
2- B
3- бросить
Введите ваш выбор
Ох. Мне также нужно добавить scanner.nextLine(); в каждом случае тоже, правильно? – Snowmap
да, вам нужно пропустить эту строку, если вы читаете новую строку после nextInt (будь то nextInt внутри корпуса или снаружи) – silentprogrammer
Большое спасибо! – Snowmap