Java中“||”与“|”的区别

Python016

Java中“||”与“|”的区别,第1张

两者都是或,但是不一样。

不同点:同与操作类似,||表示短路或,当运算符左边的值为true时,右边的表达式不会进行运算。

举个例:

int i=0

if(3>2 || (i++)>1) i=i+1

System.out.println(i)

这段程序会打印出1,而不是打印出2。

因为在if的条件判断中,程序先判断第一个表达式3>2是否成立,结果3>2为真,那么按照逻辑来

说,无论后面一个表达式(i++)>1是否成立,整个或表达式肯定为真,因此程序就不去执行判断后面

一个表达式即(i++)>1了,所以这里i并没有自增1。然后程序执行到i=i+1,于是i变为1。最后打印

出1。

int i=0

if(3>2 | (i++)>1) i=i+1

System.out.println(i)

如果换做这样写,那么就是打印出2了,因为无论第一个条件3>2是否为真,程序都会去执行判断第

二个条件表达式,因此i++这个自增是会被执行的,再加上if内的i=i+1,所以最终i=2。

扩展资料

|与||的相同点:二者都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false。

&与&&的异同点。

相同点:二者都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则为false。

不同点:在使用&进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用&&进行运算时,当左边为false时,右边的表达式不会进行运算,因此&&被称作短路与。

注意事项:

逻辑运算符一般用于连接boolean类型的表达式或者值。

表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。

算术表达式:a + b

比较表达式:a == b(条件表达式)

参考资料

百度百科——Java

这个还是或的意思

是非短路的,

“||”是短路的或

短路的意思前面的条件满足后,不执行后面的条件,非短路就是不管前面的条件成立不成立,都执行后面的条件

我给个例子你看看:

int a = 0

int b = 0

if (a == b || a == (++b)) {

System.out.println(b)// 因为“||”是短路的,

//所以前面的a==b成立,后面的a == (++b)不会执 行了,这里b输出0

}

if (a == b | a == (++b)) {

System.out.println(b)//"|"是非短路的,即使a==b成立,

//也会执行后面的a == (++b),这里输出b为1

}

希望对你有帮助