Java switch语句" case,默认预期"

时间:2015-10-16 18:28:40

标签: java

我试图制作一个switch语句,根据用户是输入1,2还是3来打印出不同的消息,但我一直在收到错误。只是下面的一小段代码抛出了大约十几个错误,这对我来说可能是某种记录。 :/

int menuSelection = keyboard.nextint;

switch 

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

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

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

错误消息是

  

"案例,默认或'>'预期"

但我不知道这意味着什么或如何解决它。

3 个答案:

答案 0 :(得分:10)

switch语句的语法不正确。您需要打开变量并添加括号以包围您的案例:

switch (menuSelection) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
}

答案 1 :(得分: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,则将执行default子句。

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。那是无效的;你需要

  • 将String的值设置为String(String s = "1";)或
  • 将int的值设置为int(int i = 1;)。

最后,您无法在代码中多次重新声明变量的类型(在同一范围内int menuSelection = keyboard.nextint;int menuSelection = 3;

答案 2 :(得分:-2)

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