java運算子(超詳細!!!)

星餘明發表於2022-07-04

java運算子

一、算數運算子

符號 含義
+ 加法
- 減法
* 乘法
/ 除法
% 餘數
++ 自增
-- 自減

這些是常用的算數運算子,在java基礎階段,掌握這些就可

  • 加減乘除運算子

程式碼例項:

public class Demo01 {
    public static void main(String[] args) {
        //二元運算子
        int a=10;
        int b=20;
        int c=25;
        int d=30;
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        //當輸出數為浮點型的時候,就需要把資料進行強制轉換(https://www.cnblogs.com/lingstar/p/16441976.html)
        System.out.println(a/(double)b);
        //模運算,取餘
        System.out.println("輸出c%a的結果:"+((double)c%a));
    }
}

輸出結果:

30
-10
200
0.5
輸出c%a的結果:5.0
  • 自增與自減運算

自增自減是java中常用的運算子,下面以自增為例,自減也同樣適用

程式碼示例:

public class Demo04 {
    public static void main(String[] args) {
        //運算子中的自增(++)與自減(--)  一元運算子
        int a=5;
        int b=a++;//++在後,先賦值再自增
        System.out.println(b);
        System.out.println(a);
        int m=3;
        int n=++m;//++在後,先自增,再進行賦值
        System.out.println("============分割線================");
        System.out.println(m);
        System.out.println(n);
        System.out.println("============分割線================");
        //短路運算(瞭解即可)
        int c=10;
        boolean  d=(c<4)&&(c++>4);
        //可以看得到前面c<4是不成立的,那麼就不會執行後面的自增運算,造成短路運算-
        System.out.println(d);
        System.out.println(c);
    }
}

輸出結果:

5
6
============分割線================
4
4
============分割線================
false
10

二、賦值運算子

  • 基本賦值運算子=

java基本運算子,實際上不是等於,它相當於把右邊表示式的值賦給等號左邊的運算數,除了基本的運算子之外,還有一些不常用的,感興趣的可以自行先了解

三、關係運算子

常見的關係運算子有

符號 含義
> 大於
< 小於
== 等於
!= 不等於
>= 大於等於
<= 小於等於

程式碼示例:

public class Demo03 {
    public static void main(String[] args) {
        //關係運算子返回的結果:正確,錯誤    布林值
        int a=10;
        int b=30;
        int c=101;
        System.out.println("輸出a>b的結果:"+(a>b));
        System.out.println("輸出a<b的結果:"+(a<b));
        System.out.println("輸出a==b的結果:"+(a==b));
        System.out.println("輸出a!=b的結果:"+(a!=b));

    }
}

輸出結果:

輸出a>b的結果:false
輸出a<b的結果:true
輸出a==b的結果:false
輸出a!=b的結果:true

四、邏輯運算子

符號 含義 運用
&& 邏輯與運算 全真為真,有假則假
|| 邏輯或運算 有真為真,全假為假
! 邏輯非運算 若真為假,若假為真

程式碼示例:

public class Demo06 {
    public static void main(String[] args) {
        //與 (and)   或(or)    非(取反)
        boolean  a=true;
        boolean  b=false;
        //邏輯與運算,全真為真,有假則假
        System.out.println("a&&b:"+(a&&b));
        //邏輯或運算,有真為真,全假為假
        System.out.println("a||b:"+(a||b));
        //邏輯非運算,若真為假,若假為真
        System.out.println("!(a&&b):"+(!(a&&b)));
            }
}

輸出結果:

a&&b:false
a||b:true
!(a&&b):true

五、位運算子

  • 位運算子
    &並 |或 ^異或 ~取反

    a=0011 1100
    b=0000 1001
    a&b=0000 1000
    a|b=0011 1101
    

    異或是同值為0,異值為1

    a^b=0011 0111
    

    取反,顧名思義,0為1,1為0

    ~b=1111 0110
    

左移<<
左移是不管正負,低位補0 。相當於*2,

24的二進位制補碼為0001 1000
左移兩位後變為0110 0000
結果為96,也就是2422
右移>>
如果該數為正,則高位補0,若為負數,則高位補1 , 相當於/2
24的二進位制補碼為0001 1000
右移兩位之後變為0000 0110
結果為6
左移右移效率極高

六、三元運算子

java中的三元運算子跟java中的if語句類似,可以說是if語句的一種簡寫

程式碼示例:

public class Demo09 {
    public static void main(String[] args) {
        //三元運算子
        //x?y:z
        //如果x==true,則結果為y,否則結果為z
        int score=80;
        String type=score<80?"不及格":"及格";//一定掌握,三元運算子
        System.out.println(type);
    }

}

輸出結果:

及格

既然是if語句的簡寫,那麼用if語句也可以輕鬆實現

程式碼示例:

public class Demo09 {
    public static void main(String[] args) {
int score=80;
if(score<60){
    System.out.println("不及格");
}else {
    System.out.println("及格");
          }
    }

}

輸出結果:

及格

相關文章