java我似乎无法为我推荐的程序找到跟踪“无效答案”的方法
代码如下:
do {
System.out.println("Question #1:");
System.out.println("What is your budget for purchasing the laptop?");
System.out.println("A. >$500.00");
System.out.println("B. $500.00 - $700.00");
System.out.println("C. $700.00 - $1000.00");
System.out.println("D. <$1000.00");
questionArray [0] = myScanner.nextLine();
if (!questionArray [0].equals ("A") || !questionArray [0].equals ("B") || !questionArray [0].equals ("C") || !questionArray [0].equals ("D")) {
System.out.println("Invalid Entry");
}
} while (!questionArray [0].equals ("A") || !questionArray [0].equals ("B") || !questionArray [0].equals ("C") || !!questionArray [0].equals ("D"));
基本上,即使我写了一个有效的回答(例如“a”),它仍然将其视为无效答案,并重新开始提问。 任何帮助都将不胜感激!:)
# 1 楼答案
如果答案是“A”,那么
questionArray[0].equals("B")
是假的,所以!questionArray[0].equals("B")
是真的,所以整个or
表达式是真的,所以答案是无效的用
&&
替换||
或使用
或者更好,使用
及
# 2 楼答案
当情况变得复杂时,最好尝试使用变量简化复杂性,使代码更清晰、更容易理解。例如:
# 3 楼答案
尽管JB给出了答案,但通常更容易将逻辑表达得更通俗易懂:
然后: