java 短路运算_Java运算符 逻辑运算符 短路运算符

&      与

两个运算数都为真时结果为真,只要有一个运算数为假结果就为假,否则就为真。

true & true = true

true & false = false

false & true = false

false & false = false

|      或

只要有一个运算数为真,结果就为真,否则就为假。

true | true = true

true | false = true

false | true = true

false | false = false

!     非

原来为真,结果位假。原来为假,结果就为真。

! true = false

! false = true

^     异或

相同位假,不同为真。

true ^ true = false

true ^ false = true

false ^ true = true

false ^ false = false

下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

操作符描述例子

&&

称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。

(A && B)为假。

| |

称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。

(A | | B)为真。

称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。

!(A && B)为真。

实例:

public classTest {public static voidmain(String[] args) {boolean a = true;boolean b = false;

System.out.println("a && b = " + (a&&b));

System.out.println("a || b = " + (a||b) );

System.out.println("!(a && b) = " + !(a &&b));

}

}

运行结果:

a && b = falsea|| b = true

!(a && b) = true

注意(1):

&&:如果前边的表达式的结果为false,则后边的表达式不再运算,整个表达式的结果就确定为false。

实例:

public classYuHuo {public static voidmain(String[] args) {int a = 5;int b = 6;if(a++ < 4 && ++b == 7)

System.out.println(a+ " , " + b); //不输出

elseSystem.out.println(a+ " , " + b); //输出结果为 6 ,6

}

}

上面例子说明: && 前面的算式进行了运算,&& 后面的的运算符没有进行运算。

注意(2):

||   :如果前边的表达式的结果为true,则后边的表达式就不再运算,整个表达式的结果就确定为true

实例:

public classHuo {public static voidmain(String[] args) {int a = 5;int b = 6;if(++a > 5 || ++b == 7)

System.out.println(a+ " , " + b); //输出结果:6 , 6

}

}

上面例子说明: || 前面的算式进行了运算,而 || 后面的算式没有进行运算。

注意(3):

||  如果在 && 的前边可以把 && 短路掉

实例:

public classHuo {public static voidmain(String[] args) {int a = 5;int b = 6;int c = 7;if(++a > 5 || ++b == 7 && ++c == 8)

System.out.println(a+ " , " + b + " , " + c); //输出结果:6 , 6 , 7

}

}

上面例子说明: || 前面算式进行了运算,||  后面的算式没有进行运算 。

注意(4):

&&  如果在 || 的前边不能把 || 短路掉

实例:

public classDuanLu {public static voidmain(String[] args) {int a = 5;int b = 6;int c = 7;if(++a < 5 && ++b < 6 || ++c > 7)

System.out.println(a+ " , " + b + " , " + c); //输出结果:6 , 6 , 8

}

}

上面的例子说明:++a 进行了运算,++b 被 && 短路,但是没有短路 || ,++c 进行了运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值