Java .与其他布尔函数相等
在我的程序的一小部分中,我试图验证是否有人输入了m,m,F,F,在大多数情况下我都得到了它,但是当我把这些语句放在一起时,似乎有点不对劲。比如说,Java .与其他布尔函数相等,java,string,boolean,Java,String,Boolean,在我的程序的一小部分中,我试图验证是否有人输入了m,m,F,F,在大多数情况下我都得到了它,但是当我把这些语句放在一起时,似乎有点不对劲。比如说, String _gender = "M"; if(!"m".equals(_gender.toLowerCase())||!"f".equals(_gender.toLowerCase())){ System.out.println("try again&q
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我已经做了一段时间了,这让我很困惑。这是一个逻辑错误。当两个相等的结果都为假时,应进入重试状态
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())){
System.out.println("try again");
}else
System.out.println("success");
让我们评估一下您的代码:
如果!没错!false=>iffalse | | true=>true
现在您了解了获得输出的原因,请重试
现在,让我们修复它:
照办
String _gender = "M";
if (!("m".equals(_gender.toLowerCase()) || "f".equals(_gender.toLowerCase())))
评估结果是
如果真| | f.equals_gender.toLowerCase=>!真=>假
这将为您提供预期的输出success让我们评估一下您的代码:
如果!没错!false=>iffalse | | true=>true
现在您了解了获得输出的原因,请重试
现在,让我们修复它:
照办
String _gender = "M";
if (!("m".equals(_gender.toLowerCase()) || "f".equals(_gender.toLowerCase())))
评估结果是
如果真| | f.equals_gender.toLowerCase=>!真=>假
这将给你预期的结果,成功是霹雳回答下面的推论:查阅德莫根定理。你想说的是如果不是A或B,那就是如果!A | | B。要删除括号,需要执行if!A&&!下面是霹雳回答的推论:查一下德莫根定理。你想说的是如果不是A或B,那就是如果!A | | B。要删除括号,需要执行if!A&&!B