Java If语句逻辑

时间:2016-10-26 21:12:24

标签: arrays if-statement string-comparison

    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]));
    }

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

我很感激解决这个问题的任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:5)

你应该替换||与&amp;&amp;因为您需要所有条件为真,以确定输入无效。随着||只需要一个条件,条件陈述总是如此。