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中有什麼不同?明天解答~~~ :)