java逻辑运算符 & 和 &&、 | 和 || 的使用和区别

发布时间:2024年01月20日

一、基本运算

  • 逻辑运算符,操作的都是boolean类型的变量或常量,而且运算得结果也是boolean类型的值。

  • 运算符说明:

    • & 和 &&:表示"且"关系,当符号左右两边布尔值都是true时,结果才能为true。否则,为false。

    • | 和 || :表示"或"关系,当符号两边布尔值有一边为true时,结果为true。当两边都为false时,结果为false

    • ! :表示"非"关系,当变量布尔值为true时,结果为false。当变量布尔值为false时,结果为true。

    • ^ :当符号左右两边布尔值不同时,结果为true。当两边布尔值相同时,结果为false。

      • 理解:异或,追求的是“异”!

  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成 3 < x < 6,应该写成x > 3 & x < 6?

二、区别

2.1 区分“&”和“&&”:

? - 相同点:如果符号左边是true,则二者都执行符号右边的操作

? - 不同点:& : 如果符号左边是false,则继续执行符号右边的操作

? ? ? ? ? ? ? ? ? ? ? ? && :如果符号左边是false,则不再继续执行符号右边的操作

? - 建议:开发中,推荐使用 &&?

2.2? 区分“|”和“||”:

????- 相同点:如果符号左边是false,则二者都执行符号右边的操作

? ? - 不同点:| : 如果符号左边是true,则继续执行符号右边的操作

? ? ?? ? ? ? ? ? ? ? || :如果符号左边是true,则不再继续执行符号右边的操作

? ? - 建议:开发中,推荐使用 ||

        int a = 3;
        int b = 4;
        int c = 5;
        //&和&&的区别
        System.out.println((a > b) & (a++ > c));//false
        System.out.println("a = " + a);//a = 4
        System.out.println((a > b) && (a++ > c));//false
        System.out.println("a = " + a);//a = 4
        System.out.println((a == b) && (a++ > c));//false
        System.out.println("a = " + a);//a = 5
        
        //|和||的区别
        System.out.println((a > b) | (a++ > c));//true
        System.out.println("a = " + a);//   a = 6
        System.out.println((a > b) || (a++ > c));// true
        System.out.println("a = " + a);//        a = 6
         System.out.println((a == b) || (a++ > c));//       true
        System.out.println("a = " + a);     //        a = 7  

文章来源:https://blog.csdn.net/m0_54140879/article/details/135681600
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。