關係運算子()

運算子 <<=>>= 是用於比較數字型別的二元運算子。運算子的含義如你所料。例如,如果 ab 被宣告為 byteshortcharintlongfloatdouble 或相應的盒裝型別中的任何一個:

- `a < b` tests if the value of `a` is less than the value of `b`. 
- `a <= b` tests if the value of `a` is less than or equal to the value of `b`. 
- `a > b` tests if the value of `a` is greater than the value of `b`. 
- `a >= b` tests if the value of `a` is greater than or equal to the value of `b`. 

在所有情況下,這些運算子的結果型別都是 boolean

關係運算子可用於比較具有不同型別的數字。例如:

int i = 1;
long l = 2;
if (i < l) {
    System.out.println("i is smaller");
}

當其中一個或兩個數字都是盒裝數字型別的例項時,可以使用關係運算子。例如:

Integer i = 1;   // 1 is autoboxed to an Integer
Integer j = 2;   // 2 is autoboxed to an Integer
if (i < j) {
    System.out.println("i is smaller");
}

具體行為總結如下:

  1. 如果其中一個運算元是盒裝型別,則將其取消裝箱。
  2. 如果其中一個運算元現在是 byteshortchar,它將被提升為 int
  3. 如果運算元的型別不相同,則具有較小型別的運算元被提升為較大型別。
  4. 對得到的 intlongfloatdouble 值進行比較。

你需要注意涉及浮點數的關係比較:

  • 計算浮點數的表示式通常會導致舍入誤差,因為計算機浮點表示的精度有限。
  • 比較整數型別和浮點型別時,整數到浮點的轉換也可能導致舍入錯誤。

最後,Java 確實支援使用除上面列出的型別以外的任何型別的關係運算子。例如,你不能使用這些運算子來比較字串,數字陣列等。