變數命名 保留字(Reserved Word) 指在 Java 中代表特定意義的單字, 這主要分為兩類, 第一類是代表程式執行動作的關鍵字 (Keywords), 列表如下: Yung-Chen Chou
變數命名 (Cont.) 另外一類, 是 Java 內建代表特定資料值的字面常數 (Literal)。 包含代表布林值 (Boolean) 的 true 與 false;以及 null 這個用來表示沒有指向任何物件的參照 (Reference) 值。 以上這些列在關鍵字或是內建字面常數中的保留字, 不能拿來作為識別字, 也不能作為變數的名稱。 Yung-Chen Chou
浮點數 Java 會將任何帶有小數點的數值視為是 double 型別。 如果您希望將之用在 float 型別的場合, 就必須在數值後面加上一個 "f" 或是 "F", 例如: Yung-Chen Chou
浮點數(Cont.) 加上 "f" 字尾的意思, 就等於是告訴 Java 說, 這個 3.1 只會拿來當作 float 型別的資料使用, 不需要花費 double 型別的空間來儲存。 這樣一來, Java 就會把 3.1 當成 float 型別的數值。 如果有必要, 您也可以使用 "d" 或是 "D" 來強調某個浮點數值為 double 型別。 Yung-Chen Chou
常數(Constant) 儲存的資料則是恆常不變, 因此稱之為常數 在 Java 中, 有兩種形式的常數: 字面常數 (Literal): 直接以文字表達其數值 字面常數 字面常數 字面常數 Yung-Chen Chou
限制該變數在設定初值之後無法再做任何更改 常數(Constant) (Cont.) 具名常數 (Named Constant) 使用一個具有名字的常數, 以代表某個具有特定意義的數值 例:您可以用 PI 這樣的名稱來表示圓週率, 這時就可以使用具名常數 (Named Constant) 限制該變數在設定初值之後無法再做任何更改 Yung-Chen Chou
常數(Constant) (Cont.) 使用具名常數的好處: 具說明意義: 避免手誤: 方便修改程式: 具名常數的名稱可說明其所代表的意義, 在閱讀程式時容易理解。例: PI, 代表圓周率。 避免手誤: 如把 3.14 打成 4.14 如果使用到同一常數的敘述很多, 就很容易出現這樣的錯誤。 如果改用具名常數, 那麼當您手誤打錯名稱時, 編譯程式就會幫您找出來, 避免這樣的意外。 方便修改程式: 舉例來說, 假設我們希望圓周率的精確度高一些, 而將原本使用的 3.14 改成 3.14159。 Yung-Chen Chou
常數(Constant) (Cont.) 對於具名常數, 一般慣例都是採全部大寫字母的命名方式, 以彰顯其為常數 例:PI 使用 "_" 來連接多個單字, 幫具名常數取個好名字。 Yung-Chen Chou
比較運算子 (Comparison Operator) 比較運算子需要兩個數值型別的運算元, 並依據運算子的比較方式, 比較兩個運算元是否滿足指定的關係。下表就是個別運算子所要比較的關係: Yung-Chen Chou
邏輯運算子 (Logical Operator) 邏輯運算子就相當於是布林資料的比較運算, 它們都需要兩個布林型別的運算元。各個運算子的意義如下: & 與 && 運算子是邏輯且 (AND) 的意思, 當兩個運算元的值都是 true 的時候, 運算結果就是 true, 否則就是 false。 | 與 || 運算子是邏輯或 (OR) 的意思, 兩個運算元中只要有一個是 true, 運算結果就是 true, 只有在兩個運算元的值都是 false 的情況下, 運算結果才會是 false。 ^ 則是邏輯互斥 (XOR, eXclusive OR) 的運算, 當兩個運算元的值不同時, 運算結果為 true, 否則為 false Yung-Chen Chou
邏輯運算子 (Logical Operator) (Cont.) &、| 這一組運算子和 &&、|| 這一組運算子的作用一模一樣, 為什麼要有兩組功用相同的運算子呢? &&、|| 這一組運算子會在左邊的運算元就可以決定運算結果的情況下忽略右邊運算元。請看以下這個範例: Yung-Chen Chou
位元運算 (Bitwise Operation) 負數是以 2 的補數法 (2's Complement), 也就是其絕對值 - 1 的補數 (Complement) 表示, 亦即其絕對值減 1 後以 2 進位表示, 然後將每一個位元的值反向, 例如: Yung-Chen Chou
運算子間的優先順序 (Operator Precedence) i = 1 + 3 * 5 >> 1 Java 制訂了一套運算子之間的優先順序, 來決定運算式的計算順序。以範例來說, 乘法運算子最優先, 其次是加法運算子, 最後才是移位運算子, 因此, i 的值實際上會是 8 Yung-Chen Chou
運算子的結合性 (Associativity) 所謂的結合性, 是指對於優先順序相同的運算子, 彼此之間的計算順序 i = 8 / 2 / 2; Java 規定了它的結合性為左邊優先 指定運算子的結合律和除法運算子相反, 是右邊優先 int i = j = k = m = 3; Yung-Chen Chou
運算子的優先順序與結合性 Yung-Chen Chou
運算子的優先順序與結合性(Cont.) Yung-Chen Chou
運算子的優先順序與結合性(Cont.) 練習 j = 10; i = ++j + 20 * 8 >> 1 % 6; Yung-Chen Chou
強制轉型 (Type Casting) Java 中, 除非您保證要放進去的數值符合 可接受範圍, 否則就無法讓您將資料放入 較小的型別變數中。這個保證的方法就稱為強制轉型 (Cast) Yung-Chen Chou
強制轉型的風險 強制轉型雖然好用, 但是把數值範圍比較大的資料強制轉換為數值範圍比較小的型別, 有可能在轉型後造成資料值不正確 Yung-Chen Chou
流程控制(一):條件分支 對於程式執行的流程順序以及因應不同狀況而選取不同的流程, 即為流程控制。 Yung-Chen Chou
流程控制(一):條件分支 (Cont.) 在 Java 中, 流程的控制敘述大致可以分為兩大類, 條件判斷敘述 (或稱為選擇敘述), 包含有 if 以及 switch 敘述兩種 『如果..就..否則..』 迴圈式敘述 (或稱重複敘述) Yung-Chen Chou
流程控制(一):條件分支 (Cont.) if 條件分支 Yung-Chen Chou
流程控制(一):條件分支 (Cont.) 使用者輸入資料 將字串資料轉換成數值 Yung-Chen Chou
多條件運算式 兩個條件都成立才會被執行到 條件1 條件2 Yung-Chen Chou
巢狀if Yung-Chen Chou
多條件敘述 else if Yung-Chen Chou
多條件敘述 else if (Cont.) Yung-Chen Chou
捕捉其餘狀況的 else 在使用 if 敘述時, 還可以加上 else 區塊在所有條件都不成立的狀況下, 執行指定的動作 Yung-Chen Chou
捕捉其餘狀況的 else (Cont.) Yung-Chen Chou
多條件分支 switch switch 是一種多選一的敘述 由一個條件運算式的值來決定應執行的對應敘述 switch之後的條件運算式的運算結果必須是 char、byte、short、或是 int 型別的值, 否則編譯時會出現錯誤 case 結束 Yung-Chen Chou
多條件分支 switch (Cont.) case 之後的條件值必須是常數或是由常數所構成的運算式, 且不同的 case 的條件值運算結果不能相同 switch 表面上看起來跟 if 完全不同, 但是 switch 私底下仍然是使用條件運算式與條件值的比較來作為其控制流程的機制 Yung-Chen Chou
多條件分支 switch (Cont.) Yung-Chen Chou