Skip to content

三元运算符

基本语法

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。另外,两边类型要兼容。

基于 VitePress 构建