在我的程序中,我使用if语句:
final String single = "single";
final String married = "married";
//status is equal to what the user inputted, also a string
if((status.compareToIgnoreCase(single) != 0) || (status.compareToIgnoreCase(married) != 0)){
System.out.println("Does not equate");
}
找出用户输入的内容。当状态更改为“单个”或“单个”时,程序将返回“不等于”。为什么在状态相等时显示“不等于”线?
答案 0 :(得分:2)
您的情况是相互排斥的。这两个条件中的一个总是正确的。即:如果地位已婚,那么它不是单身。如果状态是单身,那么它就没有结婚。
我不完全确定你要测试的是什么,但更可能的情况是:
if((!status.equalsIgnoreCase(single) && (!status.equalsToIgnoreCase(married))){
System.out.println("Does not equate");
}
答案 1 :(得分:0)
您的逻辑或导致表达始终为true
,您需要逻辑and
if ((status.compareToIgnoreCase(single) != 0) &&
(status.compareToIgnoreCase(married) != 0))
或,您可以应用DeMorgan变换并获取
if ((status.compareToIgnoreCase(single) == 0) ||
(status.compareToIgnoreCase(married) == 0))
答案 2 :(得分:0)
使用逻辑运算符时对真值表的一个很好的参考。 http://kias.dyndns.org/comath/21.html Eric B.的答案很好,我无法评论他的评论。