• Java知识系统回顾整理01基础04操作符03逻辑运算符


    一、长路与 短路与

    • 无论长路与还是短路与
      • 两边的运算单元都是布尔值
      • 都为真时,才为真
      • 任意为假,就为假
    • 区别
      • 长路与 两侧,都会被运算
      • 短路与 只要第一个是false,第二个就不进行运算了

           

       

    public class HelloWorld {

        public static void main(String[] args) {

            //长路与  无论第一个表达式的值是true或者false,第二个的值,都会被运算

    int i = 2;

            System.out.println( i== 1 & i++ ==2  ); //无论如何i++都会被执行,所以i的值变成了3

    System.out.println(i);     

            //短路与 只要第一个表达式的值是false的,第二个表达式的值,就不需要进行运算了

            int j = 2;

            System.out.println( j== 1 && j++ ==2  );  //因为j==1返回false,所以右边的j++就没有执行了,所以j的值,还是2

            System.out.println(j);            

        }

    }

       

    二、长路或 和 短路或

    • 无论长路或还是短路或
      • 两边的运算单元都是布尔值
      • 都为假时,才为假
      • 任意为真,就为真
    • 区别
      • 长路或 两侧都会被运算
      • 短路或 只要第一个是true的,第二个就不进行运算了

         

    public class HelloWorld {

        public static void main(String[] args) {

            //长路或  无论第一个表达式的值是true或者false,第二个的值,都会被运算

            int i = 2;

            System.out.println( i== 1 | i++ ==2  ); //无论如何i++都会被执行,所以i的值变成了3

            System.out.println(i);        

            //短路或 只要第一个表达式的值是true的,第二个表达式的值,就不需要进行运算了

            int j = 2;

            System.out.println( j== 2 || j++ ==2  );  //因为j==2返回true,所以右边的j++就没有执行了,所以j的值,还是2

            System.out.println(j);             

        }

    }

       

    三、取反

    取反! 

    真变为假 

    假变为真

    public class HelloWorld {

        public static void main(String[] args) {

            boolean b = true;     

            System.out.println(b); //输出true

            System.out.println(!b);//输出false       

        }

    }

       

    四、异或

    异或^ 

    不同,返回真 

    相同,返回假

    public class HelloWorld {

        public static void main(String[] args) {

            boolean a = true;

            boolean b = false;      

            System.out.println(a^b); //不同返回真

            System.out.println(a^!b); //相同返回假

        }

    }

       

    五、练习--逻辑运算符

    题目:

    int i = 1;

    boolean b = !(i++ == 3) ^ (i++ ==2) && (i++==3);

    System.out.println(b);

    System.out.println(i);

    上述代码的输出结果是?

    心算,不要丢到Eclipse中去!

       

    官方答案:

    public class HelloWorld {

        public static void main(String[] args) {

            int i = 1;

            boolean b = !(i++ == 3) ^ (i++ ==2) && (i++==3);

            //i值            2           3

            //表达式           false       true

            //              true    ^   true

            //                      false         

            System.out.println(b);

            System.out.println(i);

        }

    }

       

       

       

       

  • 相关阅读:
    Winform 控件开发,数据项重复
    input 价格自动补全 vue项目中的实际运用
    vue + element ui 的form表单中动态rules的设置
    整理全网文档管理系统,持续更新
    分享SpringBoot优秀教程、资源、仓库等
    分享SpringCloud的教程、资源、笔记
    整理全网最全K8S集群管理工具、平台
    git在本地忽略文件
    Python实现图片转字符画
    Pythonargparse用法
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/10769903.html
Copyright © 2020-2023  润新知