逻辑运算符OR无短路

shi*_*njw 7 java

你什么时候需要使用非短路逻辑运算符?换一种说法...

你什么时候用

if(x == 1 | x==2)
Run Code Online (Sandbox Code Playgroud)

代替

if(x == 1 || x==2)
Run Code Online (Sandbox Code Playgroud)

如果第一个条件为真...则整个语句已经为真.

更新:和&和&&的相同问题

ars*_*jii 8

如果我们有两个函数并且我们希望它们都被执行,就会出现一个例子:

if (foo() | bar())
Run Code Online (Sandbox Code Playgroud)

如果我们已经使用过||,那么bar()如果foo()返回true 则不会被执行,这可能不是我们想要的.

(虽然这是一个模糊的情况下有所的,并且往往不是|| 是更合适的选择.)

类似的情况可以提出&/ &&:

if (foo() & bar())
Run Code Online (Sandbox Code Playgroud)

如果我们已经使用过&&,那么bar()如果foo()返回false 则不会被执行,这可能不是我们想要的.