所以我正在编写一个基于菜单的程序,我被困在一个部分。这是我的代码:
public static void main(String [] args) throws FileNotFoundException {
switch (menu()) {
case 1:
System.out.println("Stub 1");
menu();
break;
case 2:
System.out.println("Stub 2");
menu();
break;
case 3:
System.out.println("Stub 3");
menu();
break;
case 4:
System.out.println("Program Terminated");
break;
}
}
public static int menu() {
System.out.println("Choose a task number from the following: ");
System.out.println("\t1. - See histogram of name's popularity");
System.out.println("\t2. - Compare two names in a specific decade");
System.out.println("\t3. - Show what name had a specific rank for a certain decade");
System.out.println("\t4. - Exit program");
int opt = 0;
int option = getInt(input,"Enter number (1-4): ", 1, 4);
if (option == 1) {
opt = 1;
}
else if (option == 2) {
opt = 2;
}
else if (option == 3) {
opt = 3;
}
else {
opt = 4;
}
return opt;
}
我的问题是,如何在按下选项后让菜单“重置”。例如,我选择1,程序执行操作,完成后,它再次显示选项菜单,直到我按4终止它。
我的代码中的getInt
方法只返回1到4之间的int。
答案 0 :(得分:2)
一个简单的选择是声明一个布尔变量并将switch
包裹在while循环中,例如。
Boolean quit = false;
while (!quit) //or do-while
{
int opt = menu();
switch(opt)
{
//other cases...
case 4:
quit = true;
}
}
我不确定为什么你在每种情况下都会调用菜单。
答案 1 :(得分:1)
我不在java中编码,但尝试将其指向每个案例末尾的默认大小写,这样当您编程完成操作时,它将默认返回菜单。
答案 2 :(得分:1)
对于我的菜单,我总是在do-while循环中包装菜单选项和请求。
do{
menu code...
} while (menu() != 4);
答案 3 :(得分:1)
您可以将代码保持在无限循环中,并在按下4
时退出程序。
在所有情况下都不需要调用menu()
因为您必须在每次迭代中只显示一个菜单。
使用
进行无限循环while(true) {
//some code
}
退出程序使用:
System.exit(0);
试试这个:
while(true) {
int choice = menu();
switch (choice) {
case 1:
System.out.println("Stub 1");
break;
case 2:
System.out.println("Stub 2");
break;
case 3:
System.out.println("Stub 3");
break;
case 4:
System.out.println("Program Terminated");
System.exit(0); // for terminating the program
}
}