我正在对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/

10-10 23:30