逻辑运算符

1、介绍

            用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值。

2、逻辑运算符一览

     分为两组

  • 短路与 &&,短路或 ||。取反 !

  • 逻辑与 & 逻辑或 | 。逻辑异或

a

b

a & b

a && b

a | b

a || b

!a

a ^ b

true

true

true

true

true

true

false

false

true

false

false

false

true

true

false

true

false

true

false

false

true

true

true

true

false

false

false

false

false

false

true

false

    说明逻辑运算规则:

  1. a&b:&叫逻辑与:规则:当a和b同时为true,则结果为true,否则为false。

  2. a&&b:&&叫短路与:规则:当a和b同时为true,则结果为true,否则为false。

  3. a|b:叫逻辑或:规则:当a和b,有一个为true,则结果为true,否则为false。

  4. a||b:叫短路或:规则:当a和b,有一个为true,则结果为true,否则为false。

  5. !a:叫取反,或者非运算。当a为true,则结果为false,当a为false,结果为true

  6. a^b:叫逻辑异或,当a和b不同时,则结果为true,否则为false。

3、&& 和 & 基本原则

名称

语法

特点

短路与&&

条件1&&条件2

两个条件都为true,结果为true,否则为false。

逻辑与&

条件1&条件2

两个条件都为true,结果为true,否则为false。

/** 
* 演示逻辑运算符的使用 
*/ 
public class LogicOperator01 { 
    //编写一个 main 方法 
    public static void main(String[] args) { 
        //&&短路与 和 & 案例演示 
        int age = 50; 
        if(age > 20 && age < 90) {
            System.out.println("ok100"); 
        } 
        //&逻辑与使用 
        if(age > 20 & age < 90) { 
            System.out.println("ok200"); 
        } 
        //区别 
        int a = 4; 
        int b = 9; 
        //对于&&短路与而言,如果第一个条件为 false ,后面的条件不再判断 
        //对于&逻辑与而言,如果第一个条件为 false ,后面的条件仍然会判断 
        if(a < 1 & ++b < 50) { 
            System.out.println("ok300"); 
        } 
        System.out.println("a=" + a + " b=" + b);// 4 10 
    } 
}
4、&& 和& 使用区别
  1. &&短路与:结果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高。

  2. &逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低。

  3. 开发中,我们使用的基本时使用的短路与&&,效率高。

5、|| 和 | 基本规则

名称

语法

特点

短路或||

条件1||条件2

两个条件只要有一个成立,结果true,否则为false。

逻辑或|

条件1|条件2

只要有一个条件成立,结果为true,否则为false。

 //演示| || 使用 
public class LogicOperator02 { 
    //编写一个 main 方法 
    public static void main(String[] args) { 
        //||短路或 和 |逻辑或 案例演示 
        //|| 规则: 两个条件中只要有一个成立,结果为 true,否则为 false 
        //| 规则: 两个条件中只要有一个成立,结果为 true,否则为 false 
        int age = 50; 
        if(age > 20 || age < 30) { 
           System.out.println("ok100"); 
        } 
        //&逻辑与使用 
        if(age > 20 | age < 30) { 
            System.out.println("ok200"); 
        } 
        //看看区别 
        //(1)||短路或:如果第一个条件为 true, 
        //则第二个条件不会判断,最终结果为 true,效率高 
        //(2)| 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低 
        int a = 4; 
        int b = 9; 
        if( a > 1 || ++b > 4) { // 可以换成 | 测试 
            System.out.println("ok300"); 
        } 
        System.out.println("a=" + a + " b=" + b); //4 10 
    } 
}
6、|| 和 | 使用区别
  1. ||短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为true,效率高。

  2. |逻辑或:不管第一个条件是否为true,第二个条件都要判断,效率低。

  3. 开发中,我们基本使用||。

7、!取反 基本规则

名称

语法

特点

!非(取反)

!条件

如果条件本身成立,结果为false,否则为true。

//!和^案例演示 
public class InverseOperator { 
    //编写一个 main 方法 
    public static void main(String[] args) { 
        //! 操作是取反 T->F , F -> T 
        System.out.println(60 > 20); //T 
        System.out.println(!(60 > 20)); //F 
        //a^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false 
        boolean b = (10 > 1) ^ ( 3 > 5); 
        System.out.println("b=" + b);//T 
    } 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值