java 逻辑运算

 我来答
念德台丁
2019-12-30 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:29%
帮助的人:861万
展开全部
在java中
|
是位运算符,表示"或"
只能用于二进制位的操作
比如:byte
b
=
10011001
|
00101110
b等于10111111(191)
^也是位运算符,表示"异或",也是用于二进制数的操作,
0^0=0
0^1=1
1^1=0
1^0=1
&也是位算符,表示"与"
所以flag必须是二进制数才能进行运算
&&
表示与
||表示或
都属于逻辑运算符
比如:if(a==b
||
a==c)
表示a==b
或者
a==c
这两个条件只需满足一个
if(a==b
&&
a==c)
表示a==b
并且一定要满足a==c两个条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
溥绿柳前歌
2019-03-20 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:35%
帮助的人:840万
展开全部
在Java中,逻辑运算有And、Or、Not三种,其中And、Or又分为普通逻辑运算和短路逻辑运算两种。其中普通逻辑运算And用“&”表示,“|”表示或者关系。短路逻辑运算的时候,“&&”表示短路与,“||”表示短路或。
1、一般逻辑运算需要在逻辑运算符两侧的逻辑表达式,都参与逻辑运算,其表达式的值进行比较,依次计算出最后的值。
2、短路逻辑运算符需要首先计算最左边的表达式,如果最左边的表达式成立,则不再进行整个表达式的判断,直接取最左边的表达式为整个表达式的值。
下面的例子虽然输出的值一样,但是运算的方式不一样:
private
void
testAnd(boolean
on
,boolean
tw){
System.out.println("true&&false
=
"+
(true&&false));
System.out.println("false&&false
=
"+
(false&&false));
System.out.println("false&&true
=
"+
(false&&true));
System.out.println("true&&true
=
"+
(true&&true));
System.out.println("
");
System.out.println("true&false
=
"+
(true&false));
System.out.println("false&false
=
"+
(false&false));
System.out.println("false&true
=
"+
(false&true));
System.out.println("true&true
=
"+
(true&true));
System.out.println("
");
System.out.println("true||false
=
"+
(true||false));
System.out.println("false||false
=
"+
(false||false));
System.out.println("false||true
=
"+
(false||true));
System.out.println("true||true
=
"+
(true||true));
System.out.println("
");
System.out.println("true|false
=
"+
(true|false));
System.out.println("false|false
=
"+
(false|false));
System.out.println("false|true
=
"+
(false|true));
System.out.println("true|true
=
"+
(true|true));
}
输出结果为:
短路或“&&”只有在左边的表达式值为true时,才会考虑右边表达式的值,否则直接取左边的值为整个表达式的值;
true&&false
=
false
false&&false
=
false
false&&true
=
false
true&&true
=
true
//全部计算表达式两面的值,然后取值运算;
true&false
=
false
false&false
=
false
false&true
=
false
true&true
=
true
短路或“||”只有在左边的表达式值为false时,才会考虑右边表达式的值,否则直接取左边的值为整个表达式的值;
true||false
=
true
false||false
=
false
false||true
=
true
true||true
=
true
普通或"|"全部计算表达式两面的值,然后得出结果
true|false
=
true
false|false
=
false
false|true
=
true
true|true
=
true
适用短路运算的条件
1)、表达式前后的逻辑条件有明显的顺序关联关系,顺序条件早的在表达式的左边;
2)、逻辑运算符比较少,不会有嵌套或者短路与非短路逻辑混合的情况;
3)、使用短路运算,必须清楚的明白所要判断的逻辑值的具体细节;
4)、如果"&&"和"||"混用,则不考虑使用短路运算;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式