網頁

2013年9月11日 星期三

Ch1_12 算數運算子(+ 、 -、 *、 /、 % 、++ 、 --)

運算式(Expression)是由運算元(operand)和運算子(operator)所構成的。例如:「a+b」是一個加法運算式,其中a、b是屬於運算元,而「+」號則是屬於運算子(或稱運算符號)。


         算數運算子           
說明 範例
+
 (+)正號或
加法(+)
+2 -> 取得正數2
2+1=3
     -   
(-)負號或
減法(-)
-2 ->取得負數2
2-1=3
* 乘法2 * 3 =6
/ 除法4 / 2 =2
% 餘數5 %2 = 1,求得5除以2的餘數
++ 遞增 前序遞增:
 int a=0;
a=++a;(表示a先加1,再指派給a,所以a=1)

後序遞增:
int a=0;
a=a++;(表示a先指派給a,之後a在加1,所以a=0)
-- 遞減 前序遞減:
 int a=3;
a= --a;(表示a先減1,再指派給a,所以a=2)

後序遞減:
int a=3;
a=a--;(表示a先指派給a,之後a在減1,所以a=3)

算術運算子兩邊的運算元,若有一邊是浮點數、一邊是整數,那麼運算的結果會為浮點數。


  • Java 可使用「+」當作字串合併運算子,它會將字串合併運算子前後的字串頭尾合併成一字串。
  • 使用「+」號當運算子,只要運算子前後的運算元,有一個運算元的資料型別是字串,則合併結果的資料型別就為字串。


值域在int (含)以下的資料型別(byte,short,char)作四則運算的時候,在當下運算時的資料型別會被轉成int ,所以要適時的作型別轉換!
short x=2,y=3,z;
z=x + y ;

在編譯時會發生精度錯誤,所以必須要轉型
short x=2,y=3,z;
z=(short) (x + y) ; <-要將x+y的int運算結果轉成short



遞增

將變數值加1或減1在程式中是常用的指令。可以使用加法運算子(+)來達成。

例如:

int age = 10 ;
age= age+1;
System.out.println(age); //顯示11

然而遞增遞減1個單位是常見的動作,所以有特定的運算子來表示,++與一運算子。之所以稱為單元運算子,是因為運算時只須提供一個運算子。
所以上面的程式碼可以改寫成這樣:

int age = 10 ;
age++;
System.out.println(age); //顯示11

  • 遞增(++):可以分成前置遞增(例如:++num)與後置遞增(例如:num++),這2種情況都是指派該變數自行加1,差別在於:
  1. 前置遞增:變數先自行加1後,再作其他運算。
  2. 後置遞增:先做運算,之後變數在自行加1。
也就是像下面這段範例

遞減

  • 遞減(--):觀念跟遞增相同,差別在變數會自動減1。
所以那這段程式碼輸出結果會是什麼:
package chape;

public class Ch1_19 {
    public static void main(String[] args) {
        int a = 0, b = 0;
        b = a++ + ++a - a++;
        System.out.println("a=" + a + "\tb=" + b);
    }

}


結果會像這樣a=3,b=0

為什麼會這樣,因為

沒有留言:

張貼留言