2015-10-16 91 views
-5

我試圖做一個switch語句,根據用戶輸入1,2或3是否輸出不同的消息,但我不斷收到錯誤。只是下面的一小段代碼會拋出大約十幾個錯誤,這對我來說可能是某種記錄。 :/Java開關語句「case,default expected」

int menuSelection = keyboard.nextint; 

switch 

    case 1: int menuSelection = "1"; 
     break; 

    case 2: int menuSelection = "2"; 
     break; 

    case 3: int menuSelection = "3"; 
     break; 

的錯誤消息是

「的情況下,默認情況下,或 '>' 預期」

,但我不知道這意味着什麼或如何解決它。

+2

參見http://docs.oracle.com/javase/tutorial/ java/nutsandbolts/switch.html。 – VGR

+1

您需要打開一個變量。像'''switch(x)'''。 – Siddhartha

+0

你寫開關,但沒有。 –

回答

10

您的switch語句的語法不正確。你需要切換的變量,並添加括號括起來的情況:

switch (menuSelection) { 
case 1: 
    break; 
case 2: 
    break; 
case 3: 
    break; 
} 
-2
int menuSelection = keyboard.nextint; 
switch (menuSelection) { 
    case 1: 
     menuSelection = "1"; 
     break; 
    case 2: 
     menuSelection = "2"; 
     break; 
    case 3: 
     menuSelection = "3"; 
     break; 
    default: 
     break; 
} 
+2

此代碼寫入不正確 –

+3

您忘記了括號,方括號,nextInt方法調用後的括號,nextInt!!= nextint,在每種情況下都重新聲明瞭int,並且沒有解釋任何內容。 –

+1

不要在你的答案中提供完整的代碼+它甚至沒有語法正確+沒有任何解釋 – showp1984

0

基於以下觀察,switch語句可能看起來像這樣:

int menuSelection = keyboard.nextint; 
String menuSelectionDisplay; 
switch(menuSelection) 
{ 
    case 1: 
     menuSelectionDisplay = "1"; 
     break; 

    case 2: 
     menuSelectionDisplay = "2"; 
     break; 

    case 3: 
     menuSelectionDisplay = "3"; 
     break; 

    default: 
     menuSelectionDisplay = "?"; 
     break; 
} 

Switch語句需要用花括號{}

有一個「默認」條款被認爲是一個好主意在您的switch語句中。當沒有任何一個案例匹配時,它可以作爲一個可以被執行的全部產品。在上面的例子中,如果menuSelection的值恰好爲4,則會執行默認子句。

switch語句接受一個參數,該參數用於確定要運行哪種情況。把它看作一系列if-else語句。

int value = 5; 
switch(value) 
{ 
    case 5: System.out.println("Hello!"); break; 
    case 6: System.out.println("Bye!"); break; 
    default: System.out.println("Huh?"); break; 
} 

是相同的:

if(value === 5) 
{ 
    System.out.println("Hello!"); 
} 
else if(value === 6) 
{ 
    System.out.println("Bye!"); 
} 
else 
{ 
    System.out.println("Huh?"); 
} 

在你的情況下,出現一個int值被設置爲一個字符串。這是無效的;你需要或者

  • 集的字符串的值是一個字符串(String s = "1";),或
  • 設置一個int的值是一個int(int i = 1;)。

最後,可以不變量的類型多次代碼內重新聲明(這是具有int menuSelection = keyboard.nextint;int menuSelection = 3;在同一範圍內)