1. 程式人生 > 其它 >java基礎學習-運算子Day04

java基礎學習-運算子Day04

運算子

  • java支援如下運算子:

    • 算數運算子:+,-,*,/,%,++,--

    • 賦值運算子:=

    • 關係運算符:>,<,>=,<=,==,!=,instanceof

    • 邏輯運算子:&&,||,!

    • 位運算子:&,|,^,~,>>,<<,>>>

    • 條件運算子:?:

    • 拓展賦值運算子:+=,-=,*=,/=

      public class Demo01 {
          public static void main(String[] args) {
              //二元運算(Ctrl+d:複製當前行到下一行)
              int a=10;
              int b=20;
              int c=30;
              int d=40;
              System.out.println(a+b);
              System.out.println(a-b);
              System.out.println(a*b);
              System.out.println(a/b);//輸出為0,小數精度丟失
              System.out.println(a/(float)b);//輸出為0.5
      
              long a1=123123123L;
              int b1=1234;
              short c1=12;
              byte d1=2;
              System.out.println(a1+b1+c1+d1);//輸出為long型別(運算中最大型別)
              System.out.println(b1+c1+d1);//輸出為int型別
              System.out.println(c1+d1);//輸出為int型別(byte,short,char自動轉換為int型別)
      
              //關係運算符,返回值為true,false,布林型
              System.out.println(a==b);
              System.out.println(a>=b);
              System.out.println(a<=b);
              System.out.println(a!=b);
      
              //一元運算子,自增,自減
              //q++:使用之後加一,++q:使用之前加一
              int q=3;
              
              int w=q++;
              //q=q+1;
              //w=q++ :先把q的值賦給w,再對q加一
      
              //q=q+1
              int e=++q;
              //e=++q:先對q加一,再把q的值賦給e
              
              System.out.println(q);
              System.out.println(w);
              System.out.println(e);
      
              //冪運算,2^3,使用Math工具類實現
              double a2= Math.pow(2,3);
              System.out.println(a2);
      
              //邏輯運算子,與或非(短路)
              boolean a3=true;
              boolean b3=false;
              System.out.println(a3&&b3);//兩個都為真才輸出true
              System.out.println(a3||b3);//兩個都為假才輸出false
              System.out.println(!(a3));//取反
              
              //短路解釋
              int c3=3;
              boolean d3=(c3<3)&&(c3++<5);//c3<3為假,則直接短路結束後面的自增語句
              System.out.println(d3);
              System.out.println(c3);//c3=3
              
              Demo01 demo01=new Demo01();//例項化一個物件
              demo01.Demo2();//使用物件呼叫方法
          }
          public void Demo2() {
                  //在計算機內部都是用0,1二進位制表示數的,位運算即為數字的二進位制表示在每一位上都進行與或運算
                  /*(0:false,1:true)
                  位運算子&,|,^,~,>>,<<
                  a=   0011 1100
                  b=   0000 1101
                  a&b= 0000 1100(有0即為0,全1才為1)
                  a|b= 0011 1101(有1即為1,全0才為0)
                  a^b= 0011 0001(異或:相同為0,不同為1)
                  ~a=  1100 0011(取反)
      
                  <<:數字的二進位制表示中的1左移
                  2<<2=8: 2*2*2=8
                  2=0000 0010
                  8=0000 1000
                   */
                  System.out.println(2 << 2);//輸出8
              //三元運算子?:
              //x?y:z(若x==true則返回y,否則返回z)
              int score=20;
              String type=score<60?"及格":"不及格";
              System.out.println(type);//輸出不及格
              }
      }
      
  • 優先順序(括號可改變優先順序)

    優先順序 運算子 結合性
    1 (),[],{} 從左向右
    2 !,+,-,~,++,-- 從右向左
    3 *,/,% 從左向右
    4 +,- 從左向右
    5 <<,>>,>>> 從左向右
    6 <,<=,>,>=,instanceof 從左向右
    7 ==,!= 從左向右
    8 & 從左向右
    9 ^ 從左向右
    10 | 從左向右
    11 && 從左向右
    12 || 從左向右
    13 ?: 從右向左
    14 =,+=,-=,/=(拓展賦值運算子) 從右向左