在Java中调用以前的开关

时间:2015-03-20 15:02:00

标签: java

我正在创建一个简单的命令行系统,用户应该能够选择他们想要做的事情。因此我做了一个开关,它接受一个数字作为输入并输出我选择的任何东西,虽然我现在已经知道如何将用户返回到他们可以再次输入的地方。 假设其中两个案例如下:

    case 6:
          System.out.println("----- List of available Systems: ----- ");       
          break;
     default:
          System.out.println("You pressed a non-existing number. Please try again.");
          break;
        }

现在,如果用户(我)键入任何高于6的数字,它将转到默认值并停在那里。反正有没有让它跳回到要求输入的第一个“菜单”?

提前谢谢。

2 个答案:

答案 0 :(得分:6)

您可以将其包裹在循环中,例如while

while (var < 1 || var > 6) {
    switch(var) {
        ...
    }
}

但是,这样一来,你需要确保你不会陷入无限循环。这可以解决,例如,使用标签:

end: while (var < 1 || var > 6) {
    switch (var) {
        case 1:
            // do something
            break end;
        ...
        default:
            System.out.println("Please try again.");
            break;
    }
}

这样,break语句将突破while循环。 Java标签基本上是goto非常有限的版本。

答案 1 :(得分:0)

如何更口头的话......

int myno;
Scanner scanner  =new Scanner(System.in);
boolean exit = false;
while(!exit){

    System.out.println("1. Menu 1");//Modify your menu
    System.out.println("2. Menu 2");
    System.out.println("3. Menu 3");
    System.out.println("4. Menu 4");
    System.out.println("5. Menu 5");
    System.out.println("6. Menu 6");

    myno = scanner.nextInt();

    switch(myno){
    case 1 :
        //do something
        break;
    case 2 :
        //do something
        break;
    case 3 :
        //do something
        break;                     //add for remaining cases
    case 7 :
        exit = true;//for exit
        break;  

    default :
        // do something   //set exit = true if you what to end the program for other inputs
    }
}

试试这个