以Java編寫下面的代碼:爲什麼我的switch語句有這麼奇怪的行爲?
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
類的一個實例。
什麼是鍵盤? – korifey
你可以顯示鍵盤對象的聲明嗎? – jefflunt
一些問題不清楚的地方。請細化它,其次,Case應該是Int,這就是我猜想的,它不應該是BYTE –