2016年6月16日 星期四

運算子,元

運算子,元(符號)

(一)算數運算子 => +(加), -(減), *(乘), /(除), %(餘數)

5%2 ---> 1

     二元運算子

運算元,也就是運算符號,

運算子需要兩個運算元進行運算,稱為二元運算子
1 + 2  1與2為運算元

(二)指定運算子 =>  =

將 = 運算子 右邊的運算結果 指定給 左邊的變數
Ex :
int  x = 10;
int  y = 5;
int  sum = x + y ;

1.不是 "相等"

2.變數 = 值, 變數, 計算式
    ↓
        一定要變數
int eng = 100;
3.可搭配變數值的 "堆疊運用"
4.延伸出 "遞增" 應用
+= , -=, *= , /=, %=,++, --
Ex :
int a=5;
int b=2;
a += b; // a = 7
  a -= b; // a = 3
a *= b; // a = 10
a /= b; // a = 2
a %= b; // a = 1


Ex :
遞增
x = 10;
x++;
System.out.println(x); -->顯示為 11
遞增
x = 9;
x--;
System.out.println(x); -->顯示為 9
遞增及遞減可放前置或後置做先加跟後加的動作。

遞增違例(前置) :
運算元的值先加1,再結合其他運算子做結算
int x = 10;
int y = ++x;
    x = 11;
    y = 11;
(後置):
先結合其他運算,再自動加1
int x = 10;
int y = x++;
   x = 11;
   y = 10;
進階範例 :

public class Test遞增 {

   public static void main(String[] args) {
       
       int a = 10;
       int b = ++a;
       
       System.out.println("b = " + b);
       System.out.println("-------------------");
       int c = b += 5;
       
       System.out.println("a = " + a);
       System.out.println("b = " + b);
       System.out.println("c = " + c);
   }

}

輸出結果 :

(三)關係運算子Relational Operator

  =>用於判斷與邏輯設計

=>用會產生兩種結果 ↗ true
     ↘ false
=>符號種類 >, <, >=, <=, ==, !=

例子:
float  f = 0.1F;
double d = 0.1;
System.out.println("f = " + f);
System.out.println("d = " + d);
System.out.println( "f == d is " + (f == d) );

  結果:
  f == d is false

(四)邏輯運算子

捷徑運算(short-circuit evaluation)
&& AND
|| OR
能從運算元1知道結果,就不必評估運算元2
運算元1 && 運算元2
運算元1 || 運算元2
前後運算元都必須是布林運算式(boolean expression),
運算結果為 true 或 false
英文>=90 && 數學>=90 則錄取 (如果英文低於90就不用看數學了)
英文>=90 || 數學>=90 則錄取 (如果英文高於90就不用看數學了)
非捷徑運算 (Not short-circuit evaluation)
& AND
| OR
^ XOR
! NOT

(五)條件運算子

三元運算子 (ternary operator)
運算元1 ?  運算元2  :  運算元3

運算元1 是一個 布林運算式(boolean expression)
值為 true  運算結果為 運算元2
值為 false 運算結果為 運算元3
範例:

public class Test_三元條件運算 {
   public static void main(String[] args) {
       
       int eng = 95;
       int math = 100;
       
       System.out.println("eng  = " + eng);
       System.out.println("math = " + math);
       
       String result = eng >=90 && math >= 90 ? "錄取" : "未錄取";
       System.out.println(result);
       
   }
}
輸出結果 :