我希望重复以下菜单:
选择选项
1-查找
2-在校内
3-掉队
因此,当用户选择一个选项(并且该选项将被执行)之后,他们也可以选择其他选项。
问题:我的代码使菜单重复执行而没有停止。
import java.util.Scanner;
public class MainMenu {
public static void main(String[] args) {
int userChoice;
userChoice = menu();
}
private static int menu() {
Scanner scanner = new Scanner(System.in);
System.out.println("Choose an Option");
System.out.println("1 - FIND");
System.out.println("2 - IN-SHUFFLE");
System.out.println("3 - OUT-SHUFFLE");
int choice = scanner.nextInt();
boolean quit = false;
do {
System.out.println("Choose an Option");
switch (choice) {
case 1:
System.out.println("\n1 - FIND\n");
//Deck.findTop();
break;
case 2:
System.out.println("\n2 - IN-SHUFFLE\n");
// call method
break;
case 3:
System.out.println("\n3 - OUT-SHUFFLE\n");
// call method
break;
default:
System.out.println("\nInvalid Option");
break;
}
}
while (!quit);
return choice;
}
}
我不确定如何阻止它不断重复。
您代码中的一个问题是方法menu
返回一个选项,因此它可以用于仅从控制台读取一个选项,或者用于执行整个对话框,直到用户决定退出为止。后者是更好的恕我直言,因为它使菜单的显示保持在switch
状态菜单附近:
所选选项在整个循环中保持不变。您需要将quit
设置为true才能退出循环。我建议添加一个选项以退出switch语句,在此位置即可。
为什么不使用递归调用call menu();在除第4种情况之外的所有情况下的break语句之前?