Java學習之關係運算符

關係運算符

關係運算符(relational operators)也可以稱爲“比較運算符”,用於用來比較判斷兩個變量或常量的大小。

關係運算符是二元運算符,運算結果是 boolean 型。當運算符對應的關係成立時,運算結果是 true,否則是 false。

關係表達式是由關係運算符連接起來的表達式。

關係運算符中“關係”二字的含義是指一個數據與另一個數據之間的關係,這種關係只有成立與不成立兩種可能情況,可以用邏輯值來表示,邏輯上的 true 與 false 用數字 1 與 0 來表示。關係成立時表達式的結果爲 true(或 1),否則表達式的結果爲 false(或 0)。

運算符 含義 說明 實例 結果
> 大於運算符 只支持左右兩邊操作數是數值類型。如果前面變量的值大於後面變量的值, 則返回 true。 2>3 false
>= 大於或等於運算符 只支持左右兩邊操作數是數值類型。如果前面變量的值大於等於後面變量的值, 則返回 true。 4>=2 true
< 小於運算符 只支持左右兩邊操作數是數值類型。如果前面變量的值小於後面變量的值,則返回 true。 2<3 true
<= 小於或等於運算符 只支持左右兩邊操作數是數值類型。如果前面變量的值小於等於後面變量的值, 則返回 true。 4<=2 false
== 相等運算符 如果進行比較的兩個操作數都是數值類型,無論它們的數據類型是否相同,只要它們的值相等,也都將返回 true。如果兩個操作數都是引用類型,只有當兩個引用變量的類型具有父子關係時纔可以比較,只要兩個引用指向的不是同一個對象就會返回 true。Java也支持兩個 boolean 類型的值進行比較。 4==4 true
!= 不相等運算符 如果進行比較的兩個操作數都是數值類型,無論它們的數據類型是否相同,只要它們的值不相等,也都將返回 true。如果兩個操作數都是引用類型,只有當兩個引用變量的類型具有父子關係時纔可以比較,只要兩個引用指向的不是同一個對象就會返回 true。 4!=2 true

使用實例:

a > b    // 比較變量a的值是否大於變量b的值
x+y> = z    // 比較變量x與變量y的和是否大於或等於變量z的值
width * width+size != area    // 比較變量width的平方加上變量size的值是否與變量area的值不相等
name == "zhht"    // 比較變量name的值是否等於字符串nzht
pass != "123456"    // 比較變量pass的值是否不等於字符串“123456”
注意點如下所示:
  1. 基本類型的變量、值不能和引用類型的變量、值使用 == 進行比較;
  2. boolean 類型的變量、值不能與其他任意類型的變量、值使用 == 進行比較;
  3. 如果兩個引用類型之間沒有父子繼承關係,那麼它們的變量也不能使用 == 進行比較。
  4. == 和 != 可以應用於基本數據類型和引用類型。當用於引用類型比較時,比較的是兩個引用是否指向同一個對象,但當時實際開發過程多數情況下,只是比較對象的內容是否相當,不需要比較是否爲同一個對象。


優先級

關係運算符的優先級爲:>、<、>=、<= 具有相同的優先級,並且高於具有相同優先級的 !=、==。

關係運算符的優先級高於賦值運算符而低於算術運算符,結合方向是自左向右。

用關係表達式要注意以下幾點:

  1. 運算符 >=、==、!=、<= 是兩個字符構成的一個運算符,用空格從中分開寫就會產生語法錯誤。例如 x> =y; 是錯誤的,但是可以寫成x >= y; 在運算符的兩側增加空格會提高可讀性。同樣將運算符寫反,例如 =>、=<、=! 等形式會產生語法錯誤。
  2. 由於計算機內存放的實數與實際的實數存在着一定的誤差,如果對浮點數進行 ==(相等)或 !=(不相等)的比較,容易產生錯誤結果,應該儘量避免。
  3. 不要將“==”寫成“=”。

實例代碼

編寫一個程序,使用戶可以從鍵盤輸入兩個數,並判斷這兩個數之間的大小。 實現代碼如下:

public static void main(String[] args) {
    int number1, number2; // 定義變量,保存輸入的兩個數
    System.out.print("請輸入第一個整數(number1):");
    Scanner input = new Scanner(System.in);
    number1 = input.nextInt(); // 輸入第一個數
    System.out.print("請輸入第二個整數(number2):");
    input = new Scanner(System.in);
    number2 = input.nextInt(); // 輸入第二個數
    System.out.printf("number1=%d,number2=%d\n", number1, number2); // 輸出這兩個數
    // 判斷用戶輸入的兩個數是否相等
    if (number1 == number2) {
        System.out.println("number1 和 number2 相等。");
    }
    // 判斷用戶輸入的兩個數據是否相等
    if (number1 != number2) {
        System.out.println("number1 和 number2 不相等。");
        // 判斷用戶輸入的數1是否大於數2
        if (number1 > number2) {
            System.out.println("number1 大於 number2。");
        }
        // 判斷用戶輸入的數1是否小於數2
        if (number1 < number2) {
            System.out.println("number1 小於 number2。");
        }
    }
}

結果:


程序中,使用 input.nextInt() 接收用戶從鍵盤輸入的兩個數,然後通過關係運算符來比較這兩個數之間的大小。

這裏用到了 if 語句,它是一個流程控制語句,將在後面的章節中詳細講解。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章