while( first1<=last1 || first2<=last2 )
while( first1<=last1 && first2<=last2 )
我只是想确保我是正确的。对于“或”条件,这意味着它只需要其中一个为真才能进入while循环,而“and”条件需要两者都为真才能进入while循环?我第一次在 if 语句中看到“and”和“or”操作,所以我有点困惑。
while( first1<=last1 || first2<=last2 )
while( first1<=last1 && first2<=last2 )
我只是想确保我是正确的。对于“或”条件,这意味着它只需要其中一个为真才能进入while循环,而“and”条件需要两者都为真才能进入while循环?我第一次在 if 语句中看到“and”和“or”操作,所以我有点困惑。
是的!&& 和 || 就像在 if 语句中一样工作。其实可以把while循环的条件理解为if语句——if
条件为真,进入循环
这是java短路的一个经典例子。
int x = 14;
while(x>10 && x<50)
在此语句中,第一部分为真,但对于 and 语句,两个操作数都必须为真才能执行。现在它查看下一个正确的方面,因此 while 循环将执行。如果 x 是 -11,那么第一部分将是错误的,并且它甚至不会看另一边,因为该陈述已经是错误的。or (||) 也是如此。或者当左侧为真时会短路,然后它甚至不看另一侧。
它们的工作方式与 if 语句中的完全相同,位置无关紧要。
这里有一些真值表需要澄清。
a b a OR b a AND b
false false | false | false
false true | true | false
true false | true | false
true true | true | true