Java 构建一个菜单的最佳选项是切换案例还是?
我想制作一个菜单,仅当用户选择退出选项时,该菜单才会使程序停止。我想知道你对什么是最好的选择以及原因的看法Java 构建一个菜单的最佳选项是切换案例还是?,java,if-statement,switch-statement,Java,If Statement,Switch Statement,我想制作一个菜单,仅当用户选择退出选项时,该菜单才会使程序停止。我想知道你对什么是最好的选择以及原因的看法 开关语句: do{ menu(); switch(option){ case 1: method1(); break; case 2: method2(); break; } } while(option != 3); System.out.println("Bye!"); return
开关
语句:
do{
menu();
switch(option){
case 1:
method1();
break;
case 2:
method2();
break;
}
} while(option != 3);
System.out.println("Bye!");
return;
或
递归方法中的顺序if
语句:
Scanner input = new Scanner(System.in);
int option = input.nextInt();
menu();
public void menu(){
if(option == 1){
method1();
}
if(option == 2){
method2();
}
if(option == 3){
System.out.println("Bye!");
return;
}
menu();
}
据我所知,
switch
语句就是为这种情况而设计的。所以我会使用第一种方法。第二种方法非常奇特,
我第一次看到这种方法,我不确定它是否符合逻辑 好的,这是一个初学者的问题,但是:
public enum MenuActions {
ACTION1 , ACTION2, ACTION_EXIT
}
即使不使用注释,也要尝试声明性。
只要看一眼消息来源,就会发现以前从未见过它的人身上发生了什么
然后,谈到递归的问题:
函数/方法调用堆栈的大小有限。
您应该避免使用未定义(用户定义)断链的递归编程。您的第二种方法甚至不会编译。在Java中,不能在方法中声明函数。也可以无限接近循环,因为您不更新循环内的选项 由于各种原因,您的第一种方法更好
它不是递归的?但是menu()正在调用它自己…你是对的。我没有注意到。第二种方法是递归的,如果option的值为1或2,将导致Stackoverflow异常。是的,这是真的。我是一个初学者。。。谢谢你的帮助,我们都很高兴。不客气!:)只是修改了代码,弄清楚我的想法是什么。菜单();3号线的电话不见了。非常感谢您的帮助。如果您对其中任何一个都满意,请务必接受答案。如果没有的话,你应该评论一下他们缺少了什么或者你不理解什么。非常感谢大家的帮助!
switch(option) {
case ACTION1:
method1();
break;
...
case ACTION_EXIT;
return;
}