我正在创建一个简单的命令行系统,用户应该能够选择他们想要做的事情。因此我做了一个开关,它接受一个数字作为输入并输出我选择的任何东西,虽然我现在已经知道如何将用户返回到他们可以再次输入的地方。 假设其中两个案例如下:
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的数字,它将转到默认值并停在那里。反正有没有让它跳回到要求输入的第一个“菜单”?
提前谢谢。
答案 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
}
}
试试这个