逻辑运算的操作数和运算结果都是boolean值
常见:与、或、非和异或
a1 & a2
与:左右两边变量的值或者常量的值必须是布尔值,表示两边都为true,结果就是true;有一个为false,结果就是false
或:两个布尔变量必须是true时,结果才为true;有一个为false,结果就是false
非:操作一个变量,不是两个变量,!a1 如果这个值为true,结果就是false,为false时,结果就是true,取反
异或:a1^a2,如果它们两个的值相同,则返回false,同为false结果也是为false,一个为true一个为false,结果为true
短路与:逻辑功能和与是一样的,只是计算时直接看前者条件,不看后面的条件
短路或:其中一个为true,结果就是true
For Example_01:
package com.Ponfey;
/**
* 逻辑运算符
* @Author xiaoshuai.zhu
* @Date 2020-09-22 15:17
* @Version 1.0
*/
public class TestOperator03 {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
System.out.println(b1&b2);// 与:false
System.out.println(b1|b2);// 或:ture
System.out.println(b1^b2);// 异或:ture
System.out.println(!b2);// 取反(逻辑非):ture
//测试短路
// int c = 3/0;// 运算异常:0不能作除数
boolean b3 = 1>2&2<(3/0); //两个布尔值经过比较运算后,返回false,如果不用短路,与的时候,左侧1>2为假的时候,整个结果就是假,所以实际上后面是真是假无所谓了;第一个是与,如果是普通与的话,第二个还会接着运算,如果算第二个的话就会发生异常
//System.out.println(b3); //报异常:后者还是进行了计算
boolean b3 = 1>2&&2<(3/0);//写两个符号短路了,结果就为false
}
}