运算符

基本运算符表


二元运算符

public class Demo01 {
   public static void main(String[] args) {
       //二元运算符
       //ctrl + d //复制下一行
       int a= 10;
       int b= 20;
       int c= 25;
       int d= 25;

       System.out.println(a+b);//30
       System.out.println(a-b);//-10
       System.out.println(a*b);//200
       System.out.println(a/(double)b);//0.5
  }
}

关系运算符

public class Demo3 {
   public static void main(String[] args) {
       //关系运算符返回的结果: 正确 ,错误 ,布尔值
       //if

       int a =10 ;
       int b= 20 ;
       int c= 22;

       System.out.println(c%a);//余2

       System.out.println(a>b);//false
       System.out.println(a<b);//ture
       System.out.println(a==b);//false
       System.out.println(a!=b);//true
  }
}

案例

public class Demo02 {
   public static void main(String[] args) {
       long a= 123321L;
       int  b = 123;
       short c =10 ;
       byte d =8;
       System.out.println(a+b+c+d);//long 123462
       System.out.println(b+c+d);//int 141
       System.out.println( c+d);//int 18
  }
}

自增自减运算符

public class Demo4 {
   //++ -- 自增,自减 一元二次方程
   public static void main(String[] args) {
       int a=3;

       int b =  a++; //执行这行代码先给b赋值,在自增
       //a = a+1;
       System.out.println(a);//4
       int c= ++a;   //执行这段代码前,先自增,在给b赋值
       System.out.println(a);//5
       System.out.println(b);//4
       System.out.println(c);//5

       //幂运算 2*3   2*2*2 = 8 很多运算我们会使用一些工具来进行操作0
       double pow =Math.pow(3,2);
       System.out.println(pow); //9.0
  }
}


总结:
   a++:先执行,后自增  //1.b=a   2.a=a+1
   ++a:先自增,在执行  //1.a=a+1   2.b=a
   //注:按照代码从上至下的原则
   a--:先执行,后减少 //1.b=a   2.a=a-1
   --a:先减少后,执行 //1.a=a-1 2.b=a
       
//幂运算 2*3   2*2*2 = 8 很多运算我们会使用一些工具来进行操作
       pow =Math.pow(3,2)

逻辑运算符

public class Demo5  {
   public static void main(String[] args) {
       // 与 (and) 或(or) 非(取反)
       //   &&       ||       !

       boolean a = true;
       boolean b = false;
       System.out.println("a && b :"+(b&&a)); //false //逻辑与运算:两个都为真,结果才为ture
       System.out.println("a || b :"+(a||b));//true //逻辑或运算:两个变量有一个为真,则结果才为true
       System.out.println("! (a&&b):"+!(a&&b));//true //如果为真,则为假,如果为假则为真

       
 例题:
       //短路运算
       int c= 5;
       boolean d= (c<4)&&(c++<4);
       System.out.println(d);//false
       System.out.println(c);//5


  }
   
 总结:
     1.&&  ///逻辑与运算:两个都为真,结果才为ture
     2.||  ///逻辑或运算:两个变量有一个为真,则结果才为true
     3.!   ///取反运算:如果为真,则为假,如果为假则为真
   

位运算符

public class Demo06 {
  /*
  * A = 0011 1100
  * B = 0000 1101
  *
  *
  * A&B = 0000 1100 //与运算,根据2进制运算2着都为1是,拿1,其他都是0
  * A|B = 0011 1101 //或运算,两着都为0时拿0,只要有1,拿1
  * A^B = 0011 0001 //异或运算,根据2进制运算相同就为0,不相同就为1
  * ~B = 1111 0010 //取反, 跟上面的完全不一样,上面0,下面1
  *

    2*8=16   2*2*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
*
*
*
  * */
  public static void main(String[] args) {
      System.out.println(2<<3); //16
  }
}

扩展符运算

public class Demo7 {
   public static void main(String[] args) {
       int a= 10;
       int b =10;

       a+=b; //a= a+b//20
       a-=b; //a= a-b//0
       System.out.println(a);

   小案例:
       //字符串连接符 + ,String
       System.out.println(""+a+b);//1010//细节前面先加字符串之间讲后面拼接在一起转化成字符串
       System.out.println(a+b+"");//20//先运算,就不会拼接不会转化成字符串

  }
}

三目运算

ublic class Demo08 {
   //三目运算

   //x ? y : Z
   //如果x==true ,则结果为y,否则为z
   //列如: 一天上王者? 吃大餐 :吃空气
   public static void main(String[] args) {
       int score = 50;
       String type = score<60?"不及格":"及格";
       System.out.println(type);//不及格
  }

}

总结:
   1.公式:x  ? y : Z  //如果x==true ,则结果为y,否则为z
       例子:一天上王者? 吃大餐 :吃空气