1. 程式人生 > 實用技巧 >8.運算子總結

8.運算子總結

運算子

1.二元運算子

 1 package JavaOperator;
 2 
 3 public class Operator01 {
 4     public static void main(String[] args) {
 5         /*
 6         運算子
 7         1、算數運算子:+ ,— ,* , /, %(取餘), ++, ——。
 8         2、賦值運算子:=
 9         3、關係運算符:> , <, >=, <=, ==, !=
10         4、邏輯運算子:&&, ||, !。
11 5、位運算子:&, |, ^, ~, >>, <<, >>> 。 12 6、條件運算子:?, : 。 13 7、擴充套件賦值運算子:+=, —=, *=, /= 。 14 */ 15 16 //二元運算子 17 int a = 14; 18 int b = 64; 19 int c = 34; 20 int d = 68; 21 22 System.out.println(a+b); //
78 23 System.out.println(a-c); // -20 24 System.out.println(a*d); //952 25 System.out.println(c/d); //0 .精度問題。 26 System.out.println((double)c/d); //0.5 .強制轉換解決25行的精度問 題。 27 28 //不同資料型別相加會輸出什麼結果? 29 long h = 20L; 30 int m = 798; 31 short
o = 128; 32 byte q = -1; 33 double l = 10.0; 34 System.out.println(q+l); //輸出了double型別 35 System.out.println(h+m+o+q); //輸出了long型別 36 System.out.println(m+o+q); //輸出了int型別 37 System.out.println(o+q); //輸出了int型別 38 System.out.println(h+l); //輸出了double型別 39 40 //多個數相加,有long型別,結果為long;否則為int型別。 41 //多個數相加,有double型別,結果為double;否則為int型別。 42 //double>long>int 43 44 45 } 46 }

2.關係運算符

 1 package JavaOperator;
 2 
 3 public class Operator02 {
 4     public static void main(String[] args) {
 5 
 6         //關係運算符返回的結果:ture、false (布林值)
 7         int a = 10;
 8         int b = 30;
 9 
10         System.out.println(a>b); //f
11         System.out.println(a<b); //t
12         System.out.println(a==b); //f
13         System.out.println(a!=b); //t
14 
15         //取餘 %
16         int d = 22;
17 
18         System.out.println(d%a); //2  成功取餘2。
19 
20 
21         //冪運算  如何算2^3 ? 要運用math工具類運算。
22         double pow = Math.pow(2,3);
23         double pow1 = Math.pow(3,3);
24         System.out.println(pow);  // 8.0
25         System.out.println(pow1); // 27.0
26 
27 
28     }
29 }

3.自增自減運算子

 1 package JavaOperator;
 2 
 3 public class Operator03 {
 4     public static void main(String[] args) {
 5         //自增自減 ++ -- 。一元運算子號。
 6 
 7         //--a
 8         //該計算表示式產生的值是 x - 1
 9         //該表示式表達完畢之後,a的值也發生了變化 a = x - 1
10         int a = 10;
11 
12         System.out.println(a);  //10
13         System.out.println(--a);  //9
14         System.out.println(a);  //9
15 
16 
17         //a--
18         // 該計算表示式產生的值是 x
19         //該表示式表達完畢之後,a的值也發生了變化 a = x - 1
20         int a1 = 10;
21 
22         System.out.println(a1); //10
23         System.out.println(a1--); //10
24         System.out.println(a1); //9
25 
26 
27         //++a
28         // 該計算表示式產生的值是 x + 1
29         //該表示式表達完畢之後,a的值也發生了變化 a = x + 1
30         int a2 = 10;
31 
32         System.out.println(a2); //10
33         System.out.println(++a2); //11
34         System.out.println(a2); //11
35 
36 
37         //a++
38         // 該計算表示式產生的值是 x
39         //該表示式表達完畢之後,a的值也發生了變化 a = x + 1
40         int a3 = 10;
41 
42         System.out.println(a3); //10
43         System.out.println(a3++); //10
44         System.out.println(a3); //11
45 
46 
47         //實戰
48         int b = 10;
49       
50         System.out.println(b); //10
51       
52         int c = b++;
53       
54         System.out.println(b); //11
55         System.out.println(c); //10 
56         System.out.println(b); //11
57       
58         int d = ++b;
59       
60         System.out.println(d); //12
61         System.out.println(b); //12 
62 
63     }
64 }

4.邏輯運算子 和 短路運算

 1 package JavaOperator;
 2 
 3 public class Operator04 {
 4     public static void main(String[] args) {
 5         //邏輯運算子 與& 或| 非!
 6 
 7         boolean a = true;
 8         boolean b = false;
 9 
10         System.out.println(a && b); // false。輯與運算,變數都為真,結果才為真。
11         System.out.println(a || b); // ture。邏輯或運算,變數有一真,結果直接為真。
12         System.out.println(!(a && b)); // ture。如果是真輸出假,如果是假輸出真。
13 
14         //短路運算。
15         int c = 5;
16         boolean d = (c<4)&&(c++<4); //在&&與運算中,如果&&前面的數(c<4)為假,則不進行&&後面的數(C++<4)的運算.
17       
18         System.out.println(d); // false
19         System.out.println(c); // 5 。從c輸出5可以知道,c++並沒有被執行,否則結果為6。證明了上面的運算出現短路。
20 
21         int x = 5;
22         boolean l = (x>1)||(x-->2);
23 
24         System.out.println(l); // ture
25         System.out.println(x); // 5. ||運算前的資料(x>1)為真,則結果直接為真,不再進行(x-->2)的運算,所以結果為5而不為4。
26 
27 
28     }
29 }

5.位運算

package JavaOperator;

public class Operator05 {
    public static void main(String[] args) {
        //位運算: 是二進位制的運算
        /*
        A = 0011 1100
        B = 0000 1101

        A&B = 0000 1100  .上下都為1才得1,否則得0。
        A|B = 0011 1101  .上下都為0才得0,否則得1。
        A^B = 0011 0001  .上下相同得0,不相同得1。
        ~B = 1111 0010   .取反操作
        ~A = 1100 0011
         */

        // <<左移 ,>>右移

        System.out.println(2<<3);  // 16 why?
        /*         表示
        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 1000   8ß
        0001 0000   16

        得出:2在二進位制中的1左移三位得到 16 的二進位制。
        結論:<<意味著*2 ,>>意味著/2 。


         */
        System.out.println(2<<2); //8
        System.out.println(80>>1); //40



    }
}

6.擴充套件賦值運算子

 1 package JavaOperator;
 2 
 3 public class Operator06 {
 4     public static void main(String[] args) {
 5         int a = 10;
 6         int b = 20;
 7 
 8         /*
 9         a+=b; 從輸出結果=30可以推出本式子表示的意思為 a = a+b
10         b-=a;  b = a-b .
11         //a-=b means a = b-a.
12         //偷懶寫法,在初學時不要使用。
13 
14         System.out.println(a); //30
15         System.out.println(b); //-10
16         */
17 
18         //字串連結符
19         System.out.println(a+b); //30
20         System.out.println(""+a+b); //1020
21         System.out.println(a+b+""); //30
22         //字串在前,連結後拼接。
23         //字串在後,前面的a+b正常計算。
24 
25 
26     }
27 
28 }

7.條件運算子

 1 package JavaOperator;
 2 
 3 public class Operator07 {
 4     public static void main(String[] args) {
 5         //三元運算子
 6         //偷懶演算法,但是必須掌握。
 7         //開發中很常見。
 8 
 9         //x ? y :z
10         //如果x==ture,則結果為y,否則為z。
11 
12         int score = 80;
13         int score1 = 54;
14         String ok = score < 60?"不及格":"及格";
15         String ok1 = score1 < 60?"不及格":"及格";
16         System.out.println(ok); //及格
17         System.out.println(ok1); //不及格
18     }
19 }

本文總結於:狂神說java:https://www.bilibili.com/video/BV12J41137hu?from=search&seid=13867334794067845764