关系运算符是 Java 中用于比较两个值的关键工具,广泛应用于 if 条件、循环控制(如 while、for)等逻辑结构中。它们总是返回一个 boolean 类型的结果(true 或 false),是程序实现“决策能力”的基础。
掌握 Java 中全部 6 种关系运算符的语法与语义
理解关系运算符在控制流中的核心作用
能够正确处理不同类型数据的比较(整数、浮点数等)
避免常见误区(如字符串比较误用 ==)
关系运算符(Relational Operators)是二元运算符,用于比较两个操作数之间的大小或相等关系。其通用语法为:
operand1 relational_operator operand2✅ 所有关系运算符均返回
boolean值,可直接用于条件判断。
==)检查两个操作数是否值相等。
int var1 = 5, var2 = 10, var3 = 5;
System.out.println(var1 == var2); // false
System.out.println(var1 == var3); // true⚠️ 重要提醒:对于对象(如
String),==比较的是引用地址,而非内容!String s1 = new String("Hello"); String s2 = new String("Hello"); System.out.println(s1 == s2); // false(不同对象) System.out.println(s1.equals(s2)); // true(内容相同)
!=)与 == 相反,判断两值是否不相等。
int var1 = 5, var2 = 10, var3 = 5;
System.out.println(var1 != var2); // true
System.out.println(var1 != var3); // false>)判断左操作数是否严格大于右操作数。
int var1 = 30, var2 = 20;
System.out.println(var1 > var2); // true<)判断左操作数是否严格小于右操作数。
int var1 = 10, var2 = 20;
System.out.println(var1 < var2); // true>=)判断左操作数是否大于或等于右操作数。
int var1 = 20, var2 = 20, var3 = 10;
System.out.println(var1 >= var2); // true(相等)
System.out.println(var2 >= var3); // true(大于)<=)判断左操作数是否小于或等于右操作数。
int var1 = 10, var2 = 10, var3 = 9;
System.out.println(var1 <= var2); // true(相等)
System.out.println(var2 <= var3); // false以下程序演示如何使用所有关系运算符对用户输入进行比较:
import java.util.Scanner;
public class RelationalOperators {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入第一个整数: ");
int num1 = scan.nextInt();
System.out.print("请输入第二个整数: ");
int num2 = scan.nextInt();
System.out.println("\n比较结果:");
System.out.println(num1 + " > " + num2 + " 是 " + (num1 > num2));
System.out.println(num1 + " < " + num2 + " 是 " + (num1 < num2));
System.out.println(num1 + " >= " + num2 + " 是 " + (num1 >= num2));
System.out.println(num1 + " <= " + num2 + " 是 " + (num1 <= num2));
System.out.println(num1 + " == " + num2 + " 是 " + (num1 == num2));
System.out.println(num1 + " != " + num2 + " 是 " + (num1 != num2));
scan.close(); // 防止资源泄漏
}
}请输入第一个整数: 1
请输入第二个整数: 2
比较结果:
1 > 2 是 false
1 < 2 是 true
1 >= 2 是 false
1 <= 2 是 true
1 == 2 是 false
1 != 2 是 true条件判断:if (score >= 60) { ... }
循环控制:while (count < 10) { ... }
数组边界检查:if (index >= 0 && index < array.length)
排序逻辑:if (a[i] > a[j]) swap(...)
🔔 浮点数比较建议:
double a = 0.1 + 0.2; double b = 0.3; // 错误:System.out.println(a == b); // 可能为 false! // 正确: boolean equal = Math.abs(a - b) < 1e-10;
关系运算符共 6 种,全部返回 boolean 值
是 if、while、for 等控制结构的判断依据
仅适用于可比较的数据类型(基本类型及其包装类)
== 对象比较的是引用,不是内容
复合条件可用逻辑运算符(&&, ||)组合多个关系表达式
为什么以下代码输出 false?如何修正?
Double a = 128.0;
Double b = 128.0;
System.out.println(a == b); // false?编写一个程序,输入三个整数,判断它们是否能构成三角形(任意两边之和大于第三边)。
解释为什么 char 类型可以使用关系运算符?并举例说明其用途。