if ((clearance.equals("")) || (!clearance.equals("0")) || (!clearance.equals("1"))){
System.out.println("Invalid entry, exiting.\n");
System.exit(0);
}
但是,当我输入0或1时,它仍会打印“无效输入,退出。”
知道出了什么问题吗?
答案 0 :(得分:12)
条件应为:
if (!clearance.equals("0") && !clearance.equals("1")) {
您当前的表达式始终评估为true
(因为任何字符串不等于“0”或“1”)。
答案 1 :(得分:1)
你的逻辑错了。
if ((clearance.equals("")) || ((!clearance.equals("0")) && (!clearance.equals("1")))){
答案 2 :(得分:0)
考虑一下:如果clearance != "0"
或clearance != "1"
,您将打印错误消息。其中一个或另一个永远都是真的。
答案 3 :(得分:0)
如果间隙为“1”,那么它不是“0”,所以你会在那里短路并且值为真。如果许可是0,那么它不是1,所以你的陈述也是如此。