JAVA中‘|’和‘||’的区别??(详细)

如题所述

‘|’ 这个是按位取或,例如:a=00111010,b=10011001(用二进制表示).
那么a|b=10111011,对于每个二进制位取或
00111010
| 10011001
10111011
‘||’这是个或运算,返回真或者假,只要 || 两边的表达式有一个为真就返回真。例如:A || B (其中AB分别是表达式,可以假设A 是 i % 2 == 0,B是i % 3 == 0),那么 A||B 就可以用来判断i是否能被2或3整除。如果此时i = 8.则A||B返回真。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-17
单个的表示位运算符,两个的表示逻辑运算符。
位运算符可以用于逻辑运算,而逻辑运算不能用于位运算。
如:int a=3;int b=4; int c=a & b; 则 c=0;
位运算符在逻辑运算中是非短路运算,意思就是两个表达式都要判断,即使第一个表达式已经判断出结果,但是还会继续往下判断。
例如:if(a==3 | b==4) 已经判断出a==3是 ture 此表达式已经是ture了,但是还会判断下一个表达式 b==4。如果是if(a==3 || b==4) 如果已经判断出a==3是 ture,则不会判断下一个表达式本回答被提问者采纳
第2个回答  2012-03-04
| 是位操作符:逻辑或
| (按位或):【解义】对两个整数的二进制形式逐位进行逻辑或运算,原理为:1|0=1,0|0=0,1|1=1,0|1=1
等。
4|-5:
4的二进制形式为:00000000 00000000 00000000 00000100,
-5的二进制形式为:11111111 11111111 11111111 11111011,
逐位进行逻辑或运算:11111111 11111111 11111111 11111111,即得到-1.
|| 是逻辑操作符:或操作。
||(或操作):【解义】true || false return true
false || false return false
true || true return true
||(或)与&&(且)
第3个回答  2012-03-04
| : 前后的两个条件都要做出判断,不管两个条件是否真假,但是它同时满足,有一个为真即为真;||:如果前一个条件为真,那后面的那个条件就不会判断了,如:
int i = 1;int j =2;
if(i++>0 | j++>1){}; 运算了i++,同时也要运算j++
if(i++>0 || j++>1){};运算了i++,j++就不运算了
相似回答