我正在编写调查问卷,在某个部分之后,该程序会询问"这是完整的吗?"这应该是是或否答案。所以我编写了这些条件,但我得到了一个"不兼容的类型"错误信息。
System.out.println("Is that complete?");
String answer = sc.nextLine();
if(answer="no")
{
System.out.println("Continue:");
Continued = sc.nextLine();
if(answer="yes")
{
System.out.println("Okay.");
if(answer != "yes" || "no")
System.out.println("That is not a valid input.");
isThatComplete();
}
}
谢谢!
答案 0 :(得分:0)
if (answer != "yes" || "no")
||
运算符使用布尔运算符,但是您提供了布尔值和字符串,因为它被解析为
(answer != "yes") || "no")
编写它的正确方法是
if (!answer.equals("yes") && !answer.equals("no"))
或者,根据De Morgan法律:
if (!(answer.equals("yes") || answer.equals("no"))
请注意,我使用了equals(..)
而不是==
,因为不应该使用==
来检查对象之间的相等性,{{1}}只检查引用。
答案 1 :(得分:0)
以下行不正确。当你给它一个字符串时,它期待布尔值。
if(answer="no")
你应该使用==而不是=。无论如何,更好的方法是:
if("no".equals(answer))
如果检查,尝试相同的事情。
顺便说一下 - 你的代码看起来很糟糕。我不确定你在这里要做什么:if(answer != "yes" || "no")
。