java这两个假设之间有什么区别?
if(loadFactor != null && !(trialExists(loadFactor))
及
if(!(loadFactor == null || trialExists(loadFactor))
在一篇评论文章中,我被要求如果改为第二名,就改为第1名。这有什么区别
你可以在下面搜索框中键入要查询的问题!
if(loadFactor != null && !(trialExists(loadFactor))
及
if(!(loadFactor == null || trialExists(loadFactor))
在一篇评论文章中,我被要求如果改为第二名,就改为第1名。这有什么区别
# 1 楼答案
没有区别
在这两种情况下:
loadFactor
为null,则不会对trialExists(loadFactor)
求值,并且条件将为false,因此它不会进入if
主体trialExists(loadFactor)
将被计算,条件将与结果相反——因此,如果trialExists(loadFactor)
返回false,它将只进入if
语句体这是因为
&&
和||
都是短路:&&
的第一个操作数是false
,则不计算第二个操作数,结果只是false
||
的第一个操作数是true
,则不计算第二个操作数,结果只是true
就我个人而言,我更喜欢第一段代码而不是第二段。在我看来,这就像“如果我们有一个负载系数,而且没有试验。”第二段代码更加模糊,因为内部条件是“如果我们没有负载系数,或者这是一个现有的试验”——在我看来,这不是一个特别自然的条件来表达
# 2 楼答案
他们要求你用Java的一个例子来展示De Morgan's laws是如何工作的
(摘自维基百科)
首先:
我们添加了双重否定:
然后我们可以根据第一定律进行变换(不是(A和B)与(不是A)或(不是B)相同)
现在我们可以消除双重否定:
我们从你的问题中得到了第二个if语句