布尔!(aSmile && bSmile)和(!aSmile &&!bSmile)之间的区别

总的菜鸟问题,在此编码中蝙蝠练习http://codingbat.com/prob/p181646

为什么我放:

 return (aSmile && bSmile) || !(aSmile && bSmile);

给定实践的答案是错误的,而如果我把

 return (aSmile && bSmile) || (!aSmile && !bSmile);

答案是正确的,!(aSmile && bSmile)与(!aSmile &&!bSmile)之间是否有任何区别,或使我的第一个答案有误的其他原因?


绝地无双
浏览 192回答 3
3回答

慕森卡

   A   |   B   | !(A && B) |-------+-------+-----------|  True |  True |   False   |  True | False |   True    | False |  True |   True    | False | False |   True    |   A   |   B   | !A || !B  |-------+-------+-----------|  True |  True |   False   |  True | False |   True    | False |  True |   True    | False | False |   True    |   A   |   B   | !A && !B  |-------+-------+-----------|  True |  True |   False   |  True | False |   False   | False |  True |   False   | False | False |   True    |!(A && B)等于!A || !B,所以!(A && B)和!A && !B不一样的东西

慕码人8056858

!(aSmile && bSmile)应该:!aSmile || !bSmile

慕田峪7331174

唯一的区别是第二个操作数之间:!(aSmile && bSmile)和(!aSmile && !bSmile)摩根定律(De Morgan's Laws)是一些有用的法律,其中第一个等同于:(!aSmile || !bSmile)而第二个等效于:!(aSmile || bSmile)有了这些定律,希望您能看到两个表达式为何不同的原因!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java