Возьмите следующий код, написанный на Java:
choice = keyboard.nextByte();
switch (choice)
{
case (byte) 4:
System.out.print("Input the layout type: ");
layoutType = keyboard.nextLine();
System.out.print("Input the layout name: ");
layoutName = keyboard.nextLine();
break;
default:
break;
}
Когда я запускаю программу, я получаю следующее:
Введите тип макета: введите имя макета:
Я получаю приглашение для обоих входов одновременно! Это почему? Разве программа не должна останавливаться там, где написано "keyboard.nextLine()
"? Он делает это вне оператора switch
, но не внутри него. Почему запрос пользователя для ввода внутри оператора switch
вызывает такое странное поведение?
===================================
UPDATE:
Да, все верно. keyboard
является экземпляром класса java.util.Scanner
.