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

如题所述

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

不同点:同与操作类似,||表示短路或,当运算符左边的值为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


温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-09-24

区别一:

定义不同:

||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。

区别二:

与操作和或操作的区别

(1)在Java程序中,使用与操作,要求所有表达式的判断结果都是TRUE,才为真,若有一个为FALSE,那么最终判断结果则为FALSE

(2)使用或操作,只要其中有一个表达式为TRUE,那么最终的结果就为TRUE,只有当所有的表达式为FALSE时最终结果才为FALSE

区别三:

实际含义不同:

“||”:   如果左边计算后的操作数为true,右边则不再执行,返回true;

“|”:前后两个操作数都会进行计算。也就是说:“|”不存在短路。

区别四:

举例说明

1、当使用|时,若前面的表达式为真时,程序会继续执行后面的表达式,然后在得出TRUE的结果,代码如下:

结果如下:结果为真 1

2、当使用||(短路或)时,若前面的表达式结果为真,则程序不会再执行后面的表达式,直接得出TRUE的结果,代码如下:

结果如下:结果为假 0

本回答被网友采纳
第2个回答  推荐于2019-08-07

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

举个例:

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。

拓展资料:

有些人习惯把||叫做短路或,把&&叫做短路与。&&和&的区别和||与|的区别类似,对于&&来说,

如果前面的条件表达式已经为假了,整个条件表达式肯定为假,就不会去执行判断后面的条件表达

式。

本回答被网友采纳
第3个回答  推荐于2018-02-26
两者都是或,但是不一样。
举个例实例给你看你就明白了:

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。

有些人习惯把||叫做短路或,把&&叫做短路与。&&和&的区别和||与|的区别类似,对于&&来说,如果前面的条件表达式已经为假了,整个条件表达式肯定为假,就不会去执行判断后面的条件表达式。本回答被网友采纳
第4个回答  2019-09-16
Java中‘|’与‘||’的区别
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。

java中|和||有什么区别
操作数类型不同、结果类型不同。1、操作数类型不同:|是按位或操作符,它的操作数是整数或布尔类型,||是逻辑或操作符,它的操作数是布尔类型。2、结果类型不同:|的结果是整数类型,对于布尔类型,Java会进行整数值转换,true转换为1,false转换为0,||的结果是布尔类型。

Java中“||”与“|”的区别
区别一:定义不同:||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。区别二:与操作和或操作的区别 (1)在Java程序中,使用与操作,要求所有表达式的判断结果都是TRUE,才为真,若有一个为FALSE,那么最终判断结果则为FALSE (2)使用或操作...

Java中“||”与“|”的区别
两者都是或,但是不一样。不同点:同与操作类似,||表示短路或,当运算符左边的值为true时,右边的表达式不会进行运算。举个例:int i=0;if(3>2 || (i++)>1) i=i+1;System.out.println(i);这段程序会打印出1,而不是打印出2。因为在if的条件判断中,程序先判断第一个表达式3>2是否...

java中|与||有什么区别?
&&和||是一种逻辑运算符,&&是逻辑与,当两个数都为真,则结果为真。||是逻辑或,两个数任意一个为真,则结果为真。举个例子:1、a && b 当a、b都为真时,结果为真。有一个为假或者都为假时结果为假。2、a || b 当a、b有一个为真时,结果为真。a、b都为假时结果为假。

java中 '||' 和‘|’的区别是什么,比如说b = i < 10 | methodB (4...
|是位运算,二进制里的概念,比如 A>1|B>3 两边都要运算出来再判断 ||是逻辑运算,类似我们平常的逻辑思维,前面都不成立了,后面就不理会了,直接跳过。

java中的amp;amp;和||的区别是什么?
表示与,前后两个操作数必须都为true才返回true,否则返回false。它是先计算左边的操作数,如果左边的操作数为false,直接返回false,根本不会去计算右边的操作数。||表示或,只要两个操作数中有一个是true,就可以返回true,否则返回false。从左往右进行计算,当第一个操作数为true时,直接返回true,不...

java中|是什么意思
这个是或者的符号,但是是“非短路或”。||是短路或,二者的却别在于,后者在多个判断条件中,如果第一个正确,则认为整个表达式正确,跳过第二个或是后面的所有判断。而前者不会跳过,前者会一一去判断所有条件是否正确。类似if(9>4 || 5>8),前面的判断中,这个判断式子是正确的,因为当表达式判断...

在java中“或者”用什么符号表示!我只知道在C#中或者用“||”(两个竖...
可以用 "||" 或者是 "|""||"与"|"的区别如下:例如:表达式1 || 表达式2 当表达式1为真的时候,就不会再判断或执行表达式2(只有表达式1为假时,才会执行表达式2)表达式1 | 表达式2 不论表达式1的结果是否为真,都会执行表达式2 希望对你有用!

java的amp;amp;和||什么意思?
JAVA中意思是“条件与”逻辑操作符,使用方法是xy,功能描述:x和y均为true,取值是true,否则取值是false。JAVA中||意思是“条件或”逻辑操作符,使用方法是x||y,功能描述:x和y有一个为true,取值是true,否则取值是false。

JAVA中&&和&、||和|的区别?
“1、Java中&叫做按位与,&&叫做短路与,它们的区别是: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:12&5 的值是多少...”...

相似回答