Java If语句逻辑
Java If statement logic
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,它会打印 "You entered an invalid input." 我什至让我的老师看过这个。可惜,他也找不到答案。数组 studentAnswers 是一个字符串,我什至在输入下方有一行以确保正确存储输入。
对于解决此问题的任何帮助,我将不胜感激。提前致谢!
你应该替换||使用 && 因为您需要所有条件都为真才能确定输入无效。与 ||只需要一个条件,并且您的条件语句始终为真。
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,它会打印 "You entered an invalid input." 我什至让我的老师看过这个。可惜,他也找不到答案。数组 studentAnswers 是一个字符串,我什至在输入下方有一行以确保正确存储输入。
对于解决此问题的任何帮助,我将不胜感激。提前致谢!
你应该替换||使用 && 因为您需要所有条件都为真才能确定输入无效。与 ||只需要一个条件,并且您的条件语句始终为真。