| 數學上有比較的運算,像是大於、等於、小於等等,Java中也提供了這些運算子,這些運算子稱之為「比較運算子」(Comparison operator),它們有大於(>)、不小於(>=)、小於(<)、不大於(<=)、等於(==)以及不等於(!=)。 在Java中,比較的條件成立時以true表示,比較的條件不成立時 以false表示,請您看看下面這幾行會顯示哪些數值: System.out.println("10
> 5 -> " + (10 > 5));
System.out.println("10 >= 5 -> " + (10 >= 5)); System.out.println("10 < 5 -> " + (10 < 5)); System.out.println("10 <= 5 -> " + (10 <= 5)); System.out.println("10 == 5 -> " + (10 == 5)); System.out.println("10 != 5 -> " + (10 != 5)); 程式的執行如下所示:
比較運算在使用時有個即使是程式設計老手也可能犯的錯誤,且不容易發現,也就是等於 運算子(==),注意它是兩個連續的等號(=)所組成,而不是一個等號,一個等號是指定運算子,這點必須相當注意,例如若有兩個變數x與y 要比較是否相等,是寫成x == y,而不是x = y,後者的作用是將y的值指定給x,而不是比較運算。 另一個使用 == 運算時要注意的是,對於物件來說,兩個物件參考之間使用 == 作比較時,是比較其名稱是否參考至同一物件,而不是比較其內容,您可以參考 不可變的 (immutable)字串 瞭解一下這段話的意義。 即然談到了條件式的問題,來介紹Java中的「條件運算子」 (Conditional operator),它的使用方式如下: 條件式 ? 成立傳回值 : 失敗傳回值 條件運算子的傳回值依條件式的結果而定,如果條件式的結果為true,則傳回冒號前的值,若為false,則傳回冒號後的值,下面這個程式可以作個簡單的 示範:
import java.util.Scanner; 執行結果:
這個程式會依您所輸入的分數來判斷學生成績是否不小於60分,以決定其是否及格,如果是則傳回字元 '是' ,否則傳回字元 '否'。 條件運算子(?:)相當的好用,使用得當的話可以省去不少的程式碼,例如下面這個程式可以判斷使用者輸入是否為奇數。
import java.util.Scanner; 當輸入的數為奇數時,就不能被2整除,所以餘數一定不是0,在條件式中判斷為true,因而傳回字元 '是' ,若數值為偶數,則2整除,所以餘數為0,在條件式中判斷為false,所以傳回字元 '否'。 |