Java中有許多的運算子,除了昨天提到的+ - * / % 外還有其他的運算子可以使用。
+ : 正數。int num = +5;
System.out.println(num); // 5
- : 負數。int num = -5;
System.out.println(num); // -5
+ : 加號。int num = 1;
int num1 = 2;
int num3 = num + num1
System.out.println(num3); // 3
- : 減號。int num = 1;
int num1 = 2;
int num3 = num1 - num
System.out.println(num3); // 1
+ : 連接。💡連接比較特別一點,只適用於
String和除了boolean的基本型別運算使用,並且結果會是String的型別
int num = 5;
String str = "Hello World";
System.out.println(str + num); // Hello World5
% : 取餘數。int num = 10;
int num1 = 3;
int num2 = num % num1;
System.out.println(num2); // 1
a++ : 先賦值給某個數,再進行運算(a為變數名稱 )。int num = 5;
int num1 = num++;
System.out.println(num) // 6
System.out.println(num1) // 5
/* 💡原理: num 原本的值 5 會先放到記憶體中的位置,接著運算 num+1,
而後再將記憶體中5的值賦值給num1 */
byte b1 = 127;
b1++;
System.out.println(b1); // -128
/* 💡使用 b1++ 時,不會自動類型提昇,所以在二進制的表達中,
會變成11111111,因此為 -128 */
int num2 = 10;
num2 = num2++; // 10 💡第一個範例的原理,所以最後 num2 又會被賦值為 10
++a : 先進行運算,再進行賦值(a為變數名稱 )。int num = 5;
int num1 = ++num;
System.out.println(num); // 6
System.out.println(num1); // 6
a-- 和--a : 同上方a++ 和++a 的模式相同。+=
-=
/=
*=
%=
💡相當於某個變數
+ - * / %某數
int n1 = 10;
n1 += 5; // 可以看成是 n1 = n1 + 5; 💡不會自動類型提昇
System.out.println(n1); // 15
> : 大於。< : 小於。>= : 大於等於。<= : 小於等於。💡結果會是
true或是false,基本上就是拿來做條件運算使用
int n1 = 10;
int n2 = 5;
System.out.println(n1 > n2); // true
System.out.println(n1 < n2); // false
System.out.println(n1 >= n2); // true
System.out.println(n1 <= n2); // false
因為還沒講到條件判斷式,明天講到時會再說明一次這個部分,可能會清楚一點。
& : 在 & 左右兩邊的 boolean 必須都為true ,結果才為true。💡當
&左邊為false時,雖然結果已為false,依然會執行&右邊的部分
&& : 在 && 左右兩邊的 boolean 需要皆為true ,結果才為true。💡當
&&左邊為false時,因為結果已為false,不會執行&&右邊的部分
| : 當| 左右兩邊有**其中**一個為true 時,結果就為true。💡當
|左邊為true時,雖然結果已為true,依然會執行|右邊的部分
|| : 當|| 左右兩邊有**其中**一個為true 時,結果就為true。💡當
||左邊為true時,因為結果以為true,所以不會執行||右邊的部分
! : 會將true 和 false 相反。System.out.println(!true); // false
System.out.println(!false); // true
^ : 兩個皆為true時,會是false,反之亦然,另外若是兩個不相同時會是true。System.out.println(true ^ true); // false
System.out.println(false ^ false); // true
System.out.println(true ^ false); // true
? : : ? 前如為true 則顯示? : 中間,? 前如為false 則顯示: 後。System.out.println((10 > 2) ? "1" : "2"); // 1
// 💡10 > 2 為 true,所以會print出1
System.out.println((10 < 2) ? "1" : "2"); // 2
// 💡10 < 2 為 false,所以會print出2
原本在規劃鐵人賽時就有想說要在每一天放幾個小問題隔天解答,結果每天太認真寫文章好忙都忘記這件事,所以這邊補給個意思意思一下:
terminal時,要怎麼進入某個資料夾?terminal時,要怎麼返回上一層資料夾?.java的檔案?要怎麼使用terminal編譯.java的檔案?.class的檔案編譯成機器碼,要怎麼使用terminal運行.class的檔案?提昇?要怎麼強制型別轉換?int num = 10 % 3;,這個num是多少? %代表什麼樣的運算?a++ 和++a在Java中有什麼不同?明天解答~~~ :)