我正在对CodingBat进行练习。在此page上,解决方案中有此提及:
// The above can be shortened to:
// return ((aSmile && bSmile) || (!aSmile && !bSmile));
// Or this very short version (think about how this is the same as the above)
// return (aSmile == bSmile);
是否有解释短版的规则?您如何从逻辑AND变成相等?
最佳答案
第一个条件基本上说:如果两者都为真或均为假。只有当它们相等时才会发生这种情况。
请注意,在Java中,存在一个布尔对象陷阱,将同时打印以下两个对象:
Boolean aSmile=new Boolean(true),bSmile=new Boolean(true);
if((aSmile & bSmile) || (!aSmile && !bSmile)) { System.out.println("SAME"); }
if(aSmile!=bSmile) { System.out.println("NOT THE SAME"); }
关于java - boolean 逻辑转换规则,解释了此切换到Java ==?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14288912/