指定、算數、單元運算子
介紹指定運算子、算數運算子、單元運算子
最簡單的指定運算子 Assignment Operator
就是等於符號『=』,可以把右邊的東西『指定』到左邊,並非一般數學上的『等於』
int value;
value = 10; // 指定10 給value這個變數。
也用於物件參考(reference)的指定。
算數運算子 Arithmetic Operators
Java的算數運算子跟一般你學過的數學差不多,有加、減、乘、除,符號也一樣。另外還有『 % 』符號做取餘數的運算。
運算子Operator
描述
+
加法運算,也用於字串相加
-
減法運算
*
乘法運算
/
除法運算
%
取餘數運算
使用範例:
int a = 10;
int b = 7;
String str = "Hello";
String str2 = "Java";
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
System.out.println(str+str2);
執行結果:
17 // 加法
3 // 減法
70 // 乘法
1 // 注意整數的除法也是整數,若要保留小數點,需要至少一種型態為浮點數
3 // 取餘數:10 / 7 = 1 ...3
HelloJava // 字串串接
合併
算數運算子可以跟指定運算子合併,也是一般常看到的寫法。
下面兩行是等價的:
a = a+1;
a += 1;
假設a是變數, b是變數或數值:
Operator
等價
a += b
a = a + b
a -= b
a = a - b
a *=b
a = a * b
a /= b
a = a / b
a %= b
a = a % b
純粹就是可以少打幾個字,不過因為方便也很多人這樣做,很多語言都是這樣,必須要清楚。
單元運算子 Unary Operators
單元的意思是,這個運算子是用來處理『單個』運算元的,也可稱為一元運算子。
Operator
敘述
+
正號運算子 (但就算沒加,預設就是正值)
-
負號運算子 (讓負值變正,正值變負)
++
遞增運算子,遞增1
--
遞減運算子,遞減1
!
布林反向運算子 (true變false,false變true)
使用範例:
int a = +10 ;
System.out.println(a);
int b = -a;
System.out.println(b);
a++;
System.out.println(a);
b--;
System.out.println(b);
boolean flag = true;
flag = !flag;
System.out.println(flag);
執行結果:
10
-10
11
-11
false
遞增/遞減運算子的前綴(prefix)後綴(postfix)差異
我們知道 a++ 其實就是 a=a+1 ,其實 a++ 也可以寫成 ++a,但意義上完全不一樣。
a++ ,存取完a的值後,做++的動作。
++a ,先做++的動作,在讓別人存取。
看個範例:
int a = 10;
System.out.println(a++); // 印出a的值(10)後才做++,執行完這行a為11
System.out.println(a); // 印出a的值(11)
System.out.println(++a); // 先把a做++,在印出a的值(12)
System.out.println(a); // 印出a的值(12)
執行結果:
10
11
12
12
++跟--是同樣的邏輯,如果計算式寫的多又長要注意避免搞混,最簡單避免錯誤的方法就是分開寫,不要擠在一行,但每個人寫程式習慣都不同,還是要多留意。
放變數前面是先做運算,再供別人做存取。 放變數後面是存取完,再做運算。
Last updated
Was this helpful?