Java - 大小写循环
Java - Case Looping
我正在试验 case 语句,我似乎在某处创建了一个无限循环。我不确定为什么会这样。我的代码循环一次然后而不是再次循环并要求另一个计算选项 - 它一直打印出 "Unrecognized option..."
有人能解释一下吗?
这是我的代码。
public static void main(String []args) {
char choice;
boolean exit = false;
UserInterface userMain = new UserInterface();
do {
choice = userMain.menuUI();
switch(choice) {
case 'q':
exit = true;
break;
case 'r':
Real realResult = realCalculation();
System.out.println("\nAnswer = " + realResult.toString() + "\n");
break;
case 'c':
Complex complexResult = complexCalculation();
System.out.println("\nAnswer = " + complexResult.toString() + "\n");
break;
default:
System.out.println("\nUnrecognised option.\n");
break;
}
} while (exit == false);
System.exit(0);
}
我认为 choice
的值不是这些 case
值 (q, Q, r, R, c, C
),这就是它执行 default
块的原因。
你说:
it keeps printing out "Unrecognized option..."
在default
中,所以确认choice
的值不是大小写值。
并且由于您没有更改默认值 exit
的值,因此循环继续并再次进入默认块,如此继续下去。
只能是因为userMain.menuUI();
从来没有returnsq或Q
如果您需要更多详细信息,则必须提供相关代码。
In Switch case if no case statement is matched by default default block will be executed.
在你的情况下,如果选择不匹配,那么它将始终执行默认情况,即你没有任何条件来打破循环。
如果你想让用户给出正确的输入,显示意思完整的错误信息或者让他输入有限的选项
我正在试验 case 语句,我似乎在某处创建了一个无限循环。我不确定为什么会这样。我的代码循环一次然后而不是再次循环并要求另一个计算选项 - 它一直打印出 "Unrecognized option..."
有人能解释一下吗?
这是我的代码。
public static void main(String []args) {
char choice;
boolean exit = false;
UserInterface userMain = new UserInterface();
do {
choice = userMain.menuUI();
switch(choice) {
case 'q':
exit = true;
break;
case 'r':
Real realResult = realCalculation();
System.out.println("\nAnswer = " + realResult.toString() + "\n");
break;
case 'c':
Complex complexResult = complexCalculation();
System.out.println("\nAnswer = " + complexResult.toString() + "\n");
break;
default:
System.out.println("\nUnrecognised option.\n");
break;
}
} while (exit == false);
System.exit(0);
}
我认为 choice
的值不是这些 case
值 (q, Q, r, R, c, C
),这就是它执行 default
块的原因。
你说:
it keeps printing out "Unrecognized option..."
在default
中,所以确认choice
的值不是大小写值。
并且由于您没有更改默认值 exit
的值,因此循环继续并再次进入默认块,如此继续下去。
只能是因为userMain.menuUI();
从来没有returnsq或Q
如果您需要更多详细信息,则必须提供相关代码。
In Switch case if no case statement is matched by default default block will be executed.
在你的情况下,如果选择不匹配,那么它将始终执行默认情况,即你没有任何条件来打破循环。
如果你想让用户给出正确的输入,显示意思完整的错误信息或者让他输入有限的选项