短路运算拓展及三元运算

package operator;

public class TEST04 {
public static void main(String[] args) {
//短路运算:前面如果是假的话,后面根本不会被执行
int c = 5;
boolean d =(c<4)&&(c++<4);
System.out.println(d); //false
System.out.println(c); //5 因为c<4=false, 所以(c++<4)没有被执行,d=5
boolean e =(c>4)&&(c++<4); // false
boolean b =(c>4)&&(++c>4); // ture
System.out.println(e);
System.out.println(b);

    //位运算:&  |  ^  ~  <<(左移)  >>(右移)
    /* A = 0011 1100
       B = 0000 1101

       A&B 0000 1100  两个都是1才为1,其他为0
       A|B 0011 1101  俩个都是1或者其中一个是1则为一,其他为0
       A^B 0011 0001  相同为0,不相同为1
       ~B  1111 0010

       2*8=16 2*2*2*2
       二进制
       0000 0000  0
       0000 0001  1
       0000 0010  2
       0000 0011  3
       0000 0100  4
       0000 1000  8
       0001 0000  16
       <<表示 *2  ;  >>表示 /2

     */
    System.out.println(2<<3); //表示把2向左边移动三位


    //扩展条件运算符
    int x =10;
    int y =20;
    System.out.println(x+=y); // 结果为30
    //x+=y (x=x+y); x-=y (x=x-y)

    // 字符串连接符 +
    int x1 =10;
    int y1 =20;
    System.out.println(""+x1+y1); // 1020  这里的+号表示字符串连接
    System.out.println(x1+y1+""); // 30


    //三元运算符:    ?:
    // n? m : l
    //如果n=true, 则结果为m, 否则为l
    int score =90;
    String type =score <60? "不及格":"及格";
    System.out.println(type); //及格

   /*1.三元运算符结构:(条件表达式)?表达式1:表达式2
     2.结果为boolean类型
     3.获取两个整数的最大值:int m1 = 5; int n1 = 10;

     int max =(n1>m1)? n1 : m1;
     System.out.println(max);
     
     三元运算符可以嵌套使用:
     String maxstr =(m2>n2)"m大":((m2==n2)"m和n相等" :“n大”);
   
    4.凡是可以使用三元运算符的地方,都可以使用if -else;反之,则不成立
    5.如果程序既可以使用算远运算符又可以使用if-else结构,我们优先选择 三元运算符,因为其更简洁,效率更高!
     
     




   */





}

}

posted @ 2021-08-23 20:12  以父之名3  阅读(61)  评论(0)    收藏  举报