2015-10-16 230 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;在同一范围内)