[英].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.