三目运算
三目运算符也叫条件运算符,是 Java 中唯一需要三个操作数的运算符。
格式结构
boolean表达式 ? 表达式1 : 表达式2
执行规则
- 先计算
boolean表达式的值,结果要么为true,要么为false - 如果
boolean表达式的值为true,整个表达式的值就是 表达式1 的值 - 如果
boolean表达式的值为false,整个表达式的值就是 表达式2 的值
基本示例
int a = 100, b = 200;
int f = a > b ? 1 : 2; // a > b 为 false,所以 f 的值为 2Code language: JavaScript (javascript)
嵌套使用
三目运算符可以嵌套,即表达式1或表达式2本身又是一个三目运算。常用于多条件判断:
public static void main(String[] args) {
// 比较两个值中的最大值
// int a = 432, b = 343;
// int max = a > b ? a : b;
// System.out.println("最大值是:" + max);
// 判断一个数是正数、负数还是 0
System.out.println("请输入一个整数:");
int input = new Scanner(System.in).nextInt();
System.out.println(input > 0 ? "正数" : (input < 0 ? "负数" : "0"));
}Code language: JavaScript (javascript)
总结
| 场景 | 写法示例 |
|---|---|
| 取两值中较大者 | int max = a > b ? a : b; |
| 判断奇偶数 | String r = n % 2 == 0 ? "偶数" : "奇数"; |
| 多条件嵌套 | input > 0 ? "正数" : (input < 0 ? "负数" : "0") |
注意:三目运算符虽然有
?和:两个符号,但整体是一个运算符,会返回一个值。表达式1和表达式2的返回值类型必须兼容(可以统一转换为同一类型)。