zoukankan      html  css  js  c++  java
  • ava SE ---逻辑运算符

     

    java中有4个逻辑运算符:&与,&& 逻辑与,| 或,|| 逻辑或
    这些运算符要求操作数和结果值都是布尔型。

    a&&b   a||b
    1) 逻辑与&&:只有a和b都为真,结果才为真;其余情况结果均为假。逻辑与 ---- > and并且。
    2) 逻辑或||:只有a和b都为假,结果才为假;其余情况结果均为真。逻辑或 ---- > or或者。
        &和&&的返回值规则是:两个操作数都为true才返回true
        |和||的返回值规则是:两个操作数只要有为true才返回true
     
    && 和||会发生短路现象:
    对于a&&b逻辑与来说,当第一个表达式a为false时,就不再判断第二个表达式了,直接返回false。
    对于a||b来说,当第一个表达式a为true时,就不再判断第二个表达式了,直接返回true。
    例子1:
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;
    boolean i = (a < b) && (c < d);
    System.out.println(i);   //返回true
     
    例子2:  
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;
    boolean j = (a < b) && ((e = c) < d);   //先把c赋值给e,此时e等于3,再拿e跟d比较                 
    System.out.println(j);    //返回true
    System.out.println("e的值===" + e);    //e的值===3
     
     
    例子3:   
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;
    boolean m = (a > b) && ((e = c) < d);   //先把c赋值给e,此时e等于3,再拿e跟d比较                 
    System.out.println(m);    //返回false
    System.out.println("e的值===" + e);    //e的值===5, 逻辑与&&的第一个表达式为假,则不执行第二个表达式了,直接返回false
     

    逻辑或||的实例:
    例子1:
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;
    boolean i = (a < b) || (c < d);
    System.out.println(i);  //返回true
    System.out.println("e的值===" + e); //e的值===5

    例子2:
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;                 
    boolean j = (a < b) || ((e = c) < d);                 
    System.out.println(j); //返回true
    System.out.println("e的值===" + e);  //e的值===5,逻辑||的第一个表达式为true,则直接返回true,不再执行第二个表达式。
     
    例子3:在上个例子的基础上,把表达式顺序改变了下  int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;                 
    boolean k = ((e = c) < d) || (a < b);   //把c赋值给e,再去跟d比较,所以e等于3,而不是5
    System.out.println(k); //返回true
    System.out.println("e的值===" + e); //e等于3逻辑||的第一个表达式为true,则直接返回true,不再执行第二个表达式。

    例子4:
     int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 5;                 
    boolean m = (a > b) || ((e = c) < d); //第一个表达式为false,继续执行第二个表达式                 
    System.out.println(m);  //返回true
    System.out.println("e的值===" + e); //e等于3
  • 相关阅读:
    java开学第一周测试自我感想
    暑假第八周进度报告
    暑假第七周进度报告
    暑假第六周进度报告
    暑假第五周进度报告
    暑假第四周进度报告
    暑假第三周进度报告
    暑假第二周进度报告
    《大道至简》读后感
    暑假第一周进度报告
  • 原文地址:https://www.cnblogs.com/wxc-xiaohuang/p/3437255.html
Copyright © 2011-2022 走看看