Java数据类型和运算之逻辑运算符

逻辑运算的操作数和运算结果都是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

    }
}
上一篇
下一篇