Java基础-逻辑运算符Logic Operators

              Java基础-逻辑运算符Logic Operators

                                作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 一.逻辑运算符

  逻辑运算符是对布尔值进行操作运算的,常见的有:

    1>.逻辑与(&);

    2>.逻辑或(|);

    3>.逻辑异或(^);

    4>.逻辑非(!);

    5>.短路与(&&);

    6>.短路或(||);

   总结规律如下:

    1>."&":只有两个操作数都是true,结果才是true,其余都是false;
    2>."|":只要有一个操作数是true,结果就是true,其余都是false;
    3>."!":取反,true变false,false变true;
    4>.单操作数的只有一个;
    5>.异或的含义:求异,只有两个操作数不同,整个表达式才为true;

二.案例展示

1>.逻辑运算符的操作数与布尔值

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class LogicDome{
 8     public static void main(String[] args){
 9         
10         //逻辑运算符的操作数与布尔值
11         System.out.println( true & true );                //true
12         System.out.println( false | true );            //true
13         System.out.println( true ^ false );            //true
14         System.out.println( true ^ true );                //false
15         System.out.println( !true );                    //false
16         System.out.println( !false );                    //true
17         
18     }
19 }

2>.短路与&&,操作结果与逻辑&一样(推荐使用)

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class LogicDome2{
 8     public static void main(String[] args){
 9         
10         //短路与&&,操作结果与逻辑&一样
11         int num = 2018;
12         System.out.println( (num < 0) & ( ++num > 0) );        //false
13         System.out.println( num );                                //2019
14         
15         //短路与&&,如果左侧表达式为false,不计算右侧表达式的值了
16         num = 18;
17         System.out.println( (num < 0) && ( ++num > 0) );        //false
18         System.out.println( num );                                //18
19     }
20 }

3>.短路或||,如果左侧为true,不计算右侧表达式的值了(推荐使用)

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class LogicDome3{
 8     public static void main(String[] args){
 9         
10         //短路与||,如果左侧为true,不计算右侧表达式的值了
11         int num = 2018;
12         System.out.println( (num > 0) || ( ++num > 0) );        //false
13         System.out.println( num );                                //2018
14         
15     }
16 }

4>.逻辑运算符经常用于链接多个布尔表达式

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class LogicDome4{
 8     public static void main(String[] args){
 9         
10         //逻辑运算符经常用于链接多个布尔表达式
11         int year = 2018;    
12 
13         /**
14         判断某一年是否为闰年:
15             能被4整除但是不能被100整除                    ||     直接能被400整除
16             (能被4整除 && 不能被100整除)             ||     直接能被400整除
17             (year%4==0 &&  year%100!=0)    ||    year%400==0;
18         */
19         
20         boolean isPrime = (year%4==0 &&  year%100!=0)    ||    year%400==0;        //false
21     
22         System.out.println( isPrime);
23         
24     }
25 }
原文地址:https://www.cnblogs.com/yinzhengjie/p/8688081.html