8.運算子總結
阿新 • • 發佈:2020-12-30
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 shorto = 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 }
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 }
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 }
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 } }
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 }
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