Arrays Java If语句逻辑 System.out.println(“每次输入后按Enter键输入答案:”; 对于(int x=0;x

Arrays Java If语句逻辑 System.out.println(“每次输入后按Enter键输入答案:”; 对于(int x=0;x,arrays,if-statement,string-comparison,Arrays,If Statement,String Comparison,上面是我的代码。无论出于何种原因,if语句和do while循环的条件都无法识别正确的输入。例如,如果我输入一个,它会打印“你输入了一个无效的输入。”我甚至让我的老师看了这个。不幸的是,他也找不到答案。数组studentAnswers是一个字符串,我甚至在输入下面有一行,以确保输入被正确存储 如果能帮我解决这个问题,我将不胜感激。提前谢谢 您应该将| |替换为&&因为您需要所有条件都为true才能确定输入无效。对于| |,只需要一个条件,并且通过条件语句它始终为真。您应该将| |替换为&&因为您

上面是我的代码。无论出于何种原因,if语句和do while循环的条件都无法识别正确的输入。例如,如果我输入一个,它会打印“你输入了一个无效的输入。”我甚至让我的老师看了这个。不幸的是,他也找不到答案。数组studentAnswers是一个字符串,我甚至在输入下面有一行,以确保输入被正确存储


如果能帮我解决这个问题,我将不胜感激。提前谢谢

您应该将| |替换为&&因为您需要所有条件都为true才能确定输入无效。对于| |,只需要一个条件,并且通过条件语句它始终为真。

您应该将| |替换为&&因为您需要所有条件都为真才能确定输入无效。对于| |只需要一个条件,并且通过你的条件陈述它总是正确的。

值得一提的是,“a”。等于(“a”)是错误的,它起作用了!非常感谢你!我很失望,在盯着我的代码看了一个小时之后,我没有注意到这一点。然而,有一件事我想指出<代码>如果(!“A.”等于(学生回答[x])当我还在故障排除阶段时,我只将if语句更改为此。当我单独将其更改为此语句时,它仍然不起作用。这是为什么?逻辑运算符不应该有问题。@在不知道使用的确切数据是什么的情况下重做是不可能的。据我们所知,可能是错误类型。@RedOne Wh出于好奇,你不试着复制那个bug吗?这里有一个链接。这是我刚开始时的代码版本。值得一提的是“a”。equals(“a”)是假的它起作用了!非常感谢!我很失望,我在盯着我的代码看了一个小时后没有注意到。不过,有一件事我想指出。
if(!“a”.等于(学生回答[x])
当我还在故障排除阶段时,我只将if语句更改为此。当我单独将其更改为此语句时,它仍然不起作用。这是为什么?逻辑运算符不应该有问题。@在不知道使用的确切数据是什么的情况下重做是不可能的。据我们所知,可能是错误类型。@RedOne Wh出于好奇,你不试着复制那个bug吗?这里有一个链接。这是我刚开始时的代码版本。
    System.out.println("Enter the answers pressing enter after every input : ");
    for(int x = 0; x < 20; x++) {
        do {
            studentAnswers[x] = keyboard.next().toUpperCase();
            System.out.println(studentAnswers[x]);
            if (!"A".equals(studentAnswers[x]) || !"B".equals(studentAnswers[x]) ||
                !"C".equals(studentAnswers[x]) || !"D".equals(studentAnswers[x]))
                System.out.println("You entered an invalid input.");
        } while(!"A".equals(studentAnswers[x]) || !"B".equals(studentAnswers[x]) ||
                !"C".equals(studentAnswers[x]) || !"D".equals(studentAnswers[x]));
    }