[英].equals with other Boolean functions
在我的程序的一小部分中,我試圖驗證是否有人輸入了 M、m、F、f 並且在大多數情況下我得到了它,但是當我將這些語句放在一起時似乎有些錯誤。 例如,
String _gender = "M";
if(!"m".equals(_gender.toLowerCase())||!"f".equals(_gender.toLowerCase())){
System.out.println("try again");
}else
System.out.println("success");
它告訴我再試一次,但是當我把它寫成:
String _gender = "M";
if(!"m".equals(_gender.toLowerCase())){
System.out.println("try again");
}else
System.out.println("success");
它給了我一個成功。 我不知道這是否與我使用 or 的方式有關,但這就是我的猜測。 我還認為這可能與支票同時檢查兩者或某事的事實有關。 Idk 我在這方面已經有一段時間了,這讓我感到困惑。
有邏輯錯誤。 當 equal() 結果都為假時,它應該進入“再試一次”。
String _gender = "M";
if(!"m".equals(_gender.toLowerCase()) && !"f".equals(_gender.toLowerCase())){
System.out.println("try again");
}else
System.out.println("success");
String _gender = "M";
if(!"m".equals(_gender.toLowerCase())||!"f".equals(_gender.toLowerCase()))
if(!true || !false)
=> if(false || true)
=> true
現在您了解了獲得輸出的原因,請try again
。
這樣做
String _gender = "M";
if (!("m".equals(_gender.toLowerCase()) || "f".equals(_gender.toLowerCase())))
其計算結果為 if (!(true || "f".equals(_gender.toLowerCase())))
=> (!(true))
=> false
這將為您提供預期的輸出, success
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.