我正在尝试为我的计算器程序停止循环,但我不允许使用break或system.exit。如何停止我的循环我只需要输入5作为菜单?如果我放入" n"如何让程序退出?对于问题,我想再次使用计算器吗?附:我正在使用Java。
public static void main (String args []) {
String MainMenu = " Calculator Options \n\n1. Addition\n2" +
" Subtraction\n3. Multiplication\n4. Division\n5. Exit";
menu (MainMenu);
while (true) {
String YesorNo = JOptionPane.showInputDialog("Would You Like to Use the Calculator Again (y / n)? ");
if (YesorNo.equals ("y")) {
menu (MainMenu);
}
if (YesorNo.equals ("n")) {
}
}
}
public static int menu (String info) {
String choice = JOptionPane.showInputDialog (info);
if (choice.equals ("1"))
return Addition();
else if (choice.equals ("2"))
return Subtraction();
else if (choice.equals ("3"))
return Multiplication();
else if (choice.equals ("4"))
return Division();
else
return 0;
}
答案 0 :(得分:2)
使用break
关键字。
if (YesorNo.equals ("n")) {
break;
}
或者将条件放在while-loop
中并使用关键字do
。
do {
// code & blaaa .. blaaa & code
} while (YesorNo.equals("y"));
答案 1 :(得分:2)
回答你们两个问题:
您只需使用do-while
循环并在其中包含两个条件。
但是,您目前的实施方案不会100%的时间都在运行。
原因是,您返回操作以及menu
的结果。
首先,这就是你的循环的样子。
do {
String YesorNo = JOptionPane.showInputDialog ("Would You Like to Use the Calculator Again (y / n)? ");
int menuReturn = menu (MainMenu);
} while (YesorNo.equals("y") || menuReturn != 0);
如果它不在值menu
内,那么0
方法确实会返回0-4
。但是当你的任何数学运算的结果是0
时会发生什么?你也可以关闭计算器。此时,您可能希望更改menu
的功能。
private static int result = 0;
public static int menu (String info) {
String choice = JOptionPane.showInputDialog (info);
if (choice.equals ("1")) {
result = Addition();
return 1;
}
else if (choice.equals ("2")) {
result = Subtraction();
return 1;
}
else if (choice.equals ("3")) {
result = Multiplication();
return 1;
}
else if (choice.equals ("4")) {
result = Division();
return 1;
}
else if (choice.equals("5"))
return -1;
else
return 0;
您的循环设计现在会改变为以下内容。
do {
String YesorNo = JOptionPane.showInputDialog ("Would You Like to Use the Calculator Again (y / n)? ");
int menuReturn = menu (MainMenu);
// Work with the result now
if (menuReturn == 0) // invalid input;
} while (YesorNo.equals("y") || menuReturn != -1);
但为了使其完全符合OOP原则,您可能需要重写一些代码,然后在答案中显示。