三元运算符
基本语法
java
condition ? value1 : value2条件为 true 时返回 value1,否则返回 value2。
java
int a = 10;
int b = 20;
int max = (a > b) ? a : b;
System.out.println("最大值: " + max); // 20常见用法
返回值
java
int abs = -5;
int value = abs < 0 ? -abs : abs; // 5初始化默认值
java
String name = null;
String displayName = name != null ? name : "匿名用户";
System.out.println(displayName); // 匿名用户在表达式中
java
int age = 18;
System.out.println(age >= 18 ? "成年" : "未成年"); // 成年嵌套使用
可以嵌套,但建议不超过一层:
java
int x = 5;
String result = x > 0 ? (x > 10 ? "大" : "中") : "小";超过一层时用 if-else 更清晰:
java
// ❌ 复杂嵌套
String result = a > 0 ? (b > 0 ? "AB" : "A") : (c > 0 ? "BC" : "C");
// ✅ 清晰写法
if (a > 0) {
if (b > 0) result = "AB";
else result = "A";
} else {
if (c > 0) result = "BC";
else result = "C";
}三元运算符适合简单判断,复杂逻辑用 if-else。另外,两边类型要兼容。
