所以我的代码遇到了一些问题。也就是说,在我的菜单结构中,当有人没有输入菜单中的任何给定选项时,我有一个默认选项。所以,我希望程序循环给出的选项,直到用户输入正确的答案。但是,我不确定我是否完全理解标志等的概念,因为我在执行期间不断获得一个杀手循环。这就是问题所在:
else
{
while (!choice.equals("a") || !choice.equals("b")||!choice.equals("c"))
{
System.out.println("It seems you have made a mistake. Please select one of the options: ");
System.out.println("a) Create a computer-generated matrix");
System.out.println("b) Input your own matrix");
System.out.println("c) Quit");
choice= kbReader.nextLine();
}
请帮助!!
答案 0 :(得分:0)
问题在于你的逻辑。
在英语中,你有:如果"不是"或者"不是b"或者"不是c"。
让我们说选择是A.这会产生一个杀手循环,因为A是"而不是B"或者"不是C"。
尝试将代码从OR更改为AND。这样,while循环需要测试该选项不是A,B或C重复。
所以你的第一行应该是:
while (!(choice.equals("a") || choice.equals("b")|| choice.equals("c"))) {
或者...
while (!choice.equals("a") && !choice.equals("b") && !choice.equals("c"))) {
希望你发现它有用!
答案 1 :(得分:0)
我认为你的循环逻辑应该是
while (!(choice.equals("a") || choice.equals("b")|| choice.equals("c"))) {
System.out.println("It seems you have made a mistake. Please select one of the options: ");
System.out.println("a) Create a computer-generated matrix");
System.out.println("b) Input your own matrix");
System.out.println("c) Quit");
choice= kbReader.nextLine();
}