if ((clearance.equals("")) || (!clearance.equals("0")) || (!clearance.equals("1"))){
System.out.println("Invalid entry, exiting.\n");
System.exit(0);
}
但是,當我鍵入0或1它仍然打印「無效輸入,退出」。如果語句String.equals()
任何想法出了什麼問題?
if ((clearance.equals("")) || (!clearance.equals("0")) || (!clearance.equals("1"))){
System.out.println("Invalid entry, exiting.\n");
System.exit(0);
}
但是,當我鍵入0或1它仍然打印「無效輸入,退出」。如果語句String.equals()
任何想法出了什麼問題?
條件應爲:
if (!clearance.equals("0") && !clearance.equals("1")) {
您當前的表達始終計算爲true
(因爲任何字符串不等於 「0」 或 「1」)。
除了可能需要第一個「||」(取決於語句如何重寫)。 – 2012-01-11 18:15:12
@hotlicks是啊謝謝你的評論...它現在可以工作了... – 2012-01-11 18:19:24
@aix謝謝你說清楚,被邏輯困惑,被困在這個如果循環45分鐘!感謝您的幫助。 – 2012-01-11 18:20:04
你的邏輯錯了。
if ((clearance.equals("")) || ((!clearance.equals("0")) && (!clearance.equals("1")))){
謝謝!意識到我的錯誤.. – 2012-01-11 18:21:35
想想看:你要如果clearance != "0"
或者如果clearance != "1"
打印錯誤消息。這些或那些將永遠是真實的。
謝謝...我的邏輯去了haywire ...它的230am在這裏..感謝球員的幫助.. – 2012-01-11 18:21:19
如果許可爲「1」,那麼它不是「0」,所以你會在那裏短路,並且值是真實的。如果清除率爲0,那麼它不是1,所以你的陳述是真實的。
謝謝你的答案.. – 2012-01-11 18:24:58
許可是字符串類型。我可以打印出來的值,它顯示0或1,但if語句似乎跳過它。 – 2012-01-11 18:10:50
每個實例我只鍵入一個數字,0或1. – 2012-01-11 18:11:32
請在此之前發表一些行。什麼是clearence?在進入if之前什麼是cleareance的價值? – sfratini 2012-01-11 18:17:40