所以我希望我的开关是,如果用户选择 switch(b) 否,它将返回到 switch(a) 之前的开关。我该怎么做?我对 Java 还很陌生。
switch(a){
case 1:
System.out.println("Here are the available rooms.");
System.out.println("[1] Room No. 1");
System.out.println("[2] Room No. 2");
System.out.println("[3] Room No. 3");
System.out.println("[4] Room No. 4");
System.out.println("[5] Room No. 5\n");
System.out.print("\nWhich room would you like? [1-5]:");
b= sc.nextInt();
switch(b){
case 1:
System.out.println("Room No. 1 costs $200 per stay.");
System.out.println("[1] Yes");
System.out.println("[2] No");
System.out.print("Do you wish to proceed? :");
c=sc.nextInt();
break;
}
break;
}
最佳答案
您需要使用带标签的循环:
theLabel: while (true) { // whatever condition, whatever kind of loop:
switch (a) {
case 1:
// ...
switch (b) {
case 1:
// ...
continue theLabel;
}
}
}
这将跳回到外循环的开头,因此它将再次执行 a 上的 switch。
但实际上,这并不是一个很好的结构方式。几乎总是有比使用标记循环更好的方法,例如将一些嵌套逻辑提取到方法中。
在这种情况下,我会质疑“房间 1-房间 5”的开关的使用。除非每个房间都有特定的逻辑,否则只需使用(例如)数组、列表或映射来存储每个房间的价格。
关于java - 如何回到上一个切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60023456/