2006年12月3日星期日

Java 運算子

運算子
標準數學運算子包括加法「+」減法「-」乘法「*」和除法「/」;尚有一個餘數「%」 ,格式為:num1 % num2。舉例一個除法運算。
System.out.println(10.0/3)
顯示的值為 3.3333

System.out.println(10/3)

顯示的值為 3
[!] Java 計算時會自動賦予數字 (運算元) 一個型態。遞增/遞減運算子

當要處理比較大的整數的時候,要注意超過 int 型態範圍的問題:
//一年的秒數
int y = 70;
long s = y*365L*24*60*60;
system.out.println(s);
//計算過程中 y 是 long, 或把其中一個數字改為 L
//計算的結果 s 用 long 來儲存
位元的計算
使用 Java 內建的換算功能
public class Test1 {
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(1024));
}
}
展示位元計算子「&(and)」的計算結果。
public class Test2 {
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(13));
System.out.println(Integer.toBinaryString(12));
System.out.println("--------------");
System.out.println(Integer.toBinaryString(13 & 12));
}
}
輸出結果是
1101
1100
-----
1100
對於 & 運算,當兩個對應位元都是 1 的時候,才輸出 1。至於其他的運算子
「|」「^」「~」分別說明如下:
「|位元運算,對照的位元,只要有任一個位元是 1,則輸出 1。
「^」位元運算,對照的位元都是 0 或都是 1時輸出 0,否則輸出 1
「~」位元運算,會換算成互補的 0 和 1

[!] int 包含 16 位元,第一個位元是正或負號的旗標。
位移運算子
「<<「>>「>>>」是將位元向左或右移動數個單位。

指定運算子
常見要把變數 v 加上1,寫成
v = v + 1
v++
v += 1
效果是相同的。其中 += 是指定運算子。
[!] v++ 稱為後置遞增。請看下列範例:
int v =3;
int v2 = v++;
// v++ 的意含是 把 v 的值 +1
// v2 的敘述是 '後置遞增';會先作 v2 = v 再進行 v+1
System.out.println(v);
System.out.println(v2);
//目前這個狀況 v1 會顯示 4,v2 會顯示 3
值的比較和判斷
查看兩數值大小關係的運算,使用關係運算子。常見如「==」判斷是否相等,「<判斷左是否小於右者,「<=」判斷左是否小於等於右。若同時需要取兩組判斷結果的交集,使用「&&」連接兩者。
//徵友的條件
int age = PPJUtil.getInt("Age");
char gender=PPJUtil.getChar("Gender");
System.out.println(age >= 18 && age <= 28 && gender == 'F');
//年齡大於等於18歲,小於等於28歲,同時性別為 F
配合 if/else 陳述處理
//公車收費標準
int age = PPJUtil.getInt("Age");
char gender=PPJUtil.getChar("Gender");
if (age > 60 || age < 5 || gender == 'F') {
System.out.println("免費");
} //年齡大於60歲,小於5歲,或性別為 F 都顯示為免費
else {
System.out.println("請投入15元");
} //其餘都顯示"請投入15元"
更多關於程式流程的內容,請參考 Java 程式流程

沒有留言: