两者都是或,但是不一样。
不同点:同与操作类似,||表示短路或,当运算符左边的值为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(条件表达式)
参考资料
区别一:
定义不同:
||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
区别二:
与操作和或操作的区别
(1)在Java程序中,使用与操作,要求所有表达式的判断结果都是TRUE,才为真,若有一个为FALSE,那么最终判断结果则为FALSE
(2)使用或操作,只要其中有一个表达式为TRUE,那么最终的结果就为TRUE,只有当所有的表达式为FALSE时最终结果才为FALSE
区别三:
实际含义不同:
“||”: 如果左边计算后的操作数为true,右边则不再执行,返回true;
“|”:前后两个操作数都会进行计算。也就是说:“|”不存在短路。
区别四:
举例说明
1、当使用|时,若前面的表达式为真时,程序会继续执行后面的表达式,然后在得出TRUE的结果,代码如下:
结果如下:结果为真 1
2、当使用||(短路或)时,若前面的表达式结果为真,则程序不会再执行后面的表达式,直接得出TRUE的结果,代码如下:
结果如下:结果为假 0
本回答被网友采纳两者都是或,但是不一样。
举个例:
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 的值是多少...”...