在选定的方法执行后,如何使菜单再次显示?
我有菜单选项打印到控制台。然后接受用户输入(1-6),调用相应的方法,然后返回菜单,供用户再次从菜单中选择。
选择的方法执行后,程序刚好结束。
public static void main (String[] arg) {
Scanner kbd = new Scanner(System.in);
String mainMenu = ("Select a choice from the menu: \n"
+ "1. Add new DVD entry\n"
+ "2. Look Up DVD Entry\n"
+ "3. Display DVDs By Category\n"
+ "4. Remove DVD Entry\n"
+ "5. Save Data\n"
+ "6. Exit");
System.out.println(mainMenu);
menuChoice = kbd.nextInt();
while (menuChoice < 1 || menuChoice > 6) {
System.out.print("\nError! Incorrect choice.\n");
System.out.println(mainMenu);
menuChoice = kbd.nextInt();
}
switch (menuChoice) {
case 1: {
// method code
}
else {
// method code
return;
}
}
case 2: {
// method code
return;
}
case 3: {
// method code
return;
}
case 4: {
// method code
return;
}
case 5: {
// method code
return;
}
case 6: {
// method code
System.exit(0);
return;
}
}
}
使用do while
do
{
System.out.println(mainMenu);
menuChoice = kbd.nextInt();
... switch/case ...
... remove the return statements from your cases.
} while (menuChoice != 6);
您还必须从大小写
中删除返回
。否则它将返回main之外。将它们替换为break
;
这就是switch案例需要的方式
switch (menuChoice)
{
case 1:
Do what you want.
break;
case 2:
...
break;
default:
...
break;
}
您通常不需要{
或if
在开关用例中。
我想为android构建一个计算器应用程序,为此我需要一个解析器来转换要求解的字符串表达式。现在Java和Kotlin不支持eval函数,仅仅为了一个操作而导入javascript引擎可能会让我面临各种漏洞。所以我做了自己的计算器解析器。现在它工作得很好,除了crash中的负数外,所有算术运算都工作得很好。我确实知道问题是什么,因为我使用数学符号分隔字符串,但我不能在负值中执行任何操作。 输入:-
问题内容: 有人建议可以怎一个JAVA程序运行不写一个主要方法.. 例如: 不使用类中的公共静态void main(String arg []),如何在控制台上打印以上行。 问题答案: 直到JDK6,您都可以使用静态初始化程序块来打印消息。这样,一旦您的班级被加载,消息就会被打印出来。然后,技巧就变成了使用另一个程序来加载您的类。 当然,您可以按如下方式运行程序,您将看到消息;但是,该命令也会失败
问题内容: 我想知道像Karel这样的程序可以运行机器人,因为它没有使用main()方法。相反,它使用run()方法: 它是如何工作的? 问题答案: 实际的主要方法在其他地方。例如,在KarelRunner类中。当Java执行程序时,它实际上是在运行程序类中执行main方法。从该运行程序代码中调用您自己的run方法。
我正在调用一个外部服务来获取,如果该服务不工作,我所需要的只是用填充值
问题内容: 很抱歉那个愚蠢的问题。如何在javascript切换大小写语言元素中为案件使用条件?像下面的示例一样,当变量<= 5和> 0 时,大小写应该匹配;但是,我的代码不起作用: 感谢您的任何建议! 问题答案: 这有效: 此答案的先前版本认为括号是罪魁祸首。实际上,括号在这里是无关紧要的-唯一必要的是您的case表达式必须为布尔值。 之所以起作用,是因为我们将给开关的值用作比较的依据。因此,同