java当我使用||
我试图让代码检查输入是否为空,是否为输入,或者是否为Y或N,但我不断收到错误
我试过只使用“|”,但那不起作用,而且“,”也没有意义
while (answerToFirstQuestionYN.isEmpty() && !answerToFirstQuestionYN.equalsIgnoreCase("Y" || "N")) {
System.out.println("Input not recognized, try again.");
answerToFirstQuestionYN = reader.next();
}
错误消息为“未为参数类型java.lang.String、java.lang.String定义运算符”| |”
# 1 楼答案
||
运算符只能联接布尔表达式。因此,您需要将以下条件分开:需要删除第一个条件(
answerToFirstQuestionYN.isEmpty()
),否则整个条件只有在字符串为空时才为真# 2 楼答案
Java不是自然语言。在英语中,我们可以说“如果答案是Y或N”,其中“或”可以连接名词短语。在Java中,“或”仅适用于真值;表达式的求值方式与数学中的一样,括号中的内容放在第一位
answer.equals("Y" || "N")
会首先尝试计算"Y" or "N"
,从Java的角度来看,这是胡说八道。您真正需要做的是首先有两个真值:“如果答案是Y,或者如果答案是N”: