5.1 关系运算符

关系运算符(relational operator)用于检查条件,如两个值是否相等或一个值是否大于另一个值。以下的表达式演示了关系运算符的用法:

  1. x == y // x等于y
  2. x != y // x与y不相等
  3. x > y // x大于y
  4. x < y // x小于y
  5. x >= y // x大于或等于y
  6. x <= y // x小于或等于y

关系运算符的结果为 truefalse 这两个特殊值中的一个。这些值属于 boolean 数据类型;事实上,它们是仅有的两个 boolean 值。

你可能熟悉这些运算,但注意,表示这些运算时,Java 使用的运算符不同于数学中使用的符号(如 =)。一种常见的错误是使用单个等号(=)而不是两个(==)。别忘了,= 是赋值运算符,而 == 是一个比较运算符。另外,没有诸如 =<=> 这样的 Java 运算符。

关系运算符的两边必须兼容,例如,表达式 5 < "6" 是非法的,因为 5 是一个 int,而 "6" 是一个 String。比较不同类型的数值时,Java 应用前面介绍过的赋值运算符的转换规则。

例如,计算表达式 5 < 6.0 时,Java 自动将 5 转换为 5.0

大多数的关系运算符都不可用于字符串,但令人迷惑的是,==!= 可以,只是它们的行为并非你预期的那样,我们将在后面有所介绍。在此之前,不要将它们用于字符串,而应使用方法 equals

  1. String fruit1 = "Apple";
  2. String fruit2 = "Orange";
  3. System.out.println(fruit1.equals(fruit2));

fruit1.equals(fruit2) 的结果为 booleanfalse