Ternary Operator in Java

14 Apr 2025 | 5 分钟阅读

三元运算符(? :)是一种 Java 条件运算符。它包含三个操作数。它用于评估 布尔值 表达式。该运算符决定将哪个值分配给变量。它是唯一接受三个操作数的条件运算符。它可以替代 if-else 语句。它使代码更简单、更易读、更短。

注意:并非所有使用 if-else 语句的代码都可以用三元运算符替换。

语法

上面的语句说明,如果条件返回 true,则执行 expression1;否则,执行 expression2,并将最终结果存储在变量中。

Ternary Operator Java

让我们通过流程图来理解三元运算符。

Ternary Operator Java

三元运算符示例

示例

编译并运行

输出

Value of y is: 90
Value of y is: 61

使用三元运算符计算三个数字中的最大值

示例

编译并运行

输出:

The largest number is 89

在上面的程序中,我们有三个变量 x、y 和 z,分别赋值为 69、89 和 79。表达式 (x > y) ? (x > z ? x : z) : (y > z ? y : z) 计算三个数字中的最大值,并将最终结果存储在 largestNumber 变量中。让我们来理解表达式的执行顺序。

Ternary Operator Java

首先,它检查表达式 (x > y)。如果返回 true,则执行表达式 (x > z ? x : z);否则,执行表达式 (y > z ? y : z)

当执行表达式 (x > z ? x : z) 时,它会进一步检查条件 x > z。如果条件返回 true,则返回 x 的值;否则,返回 z 的值。

当执行表达式 (y > z ? y : z) 时,它会进一步检查条件 y > z。如果条件返回 true,则返回 y 的值;否则,返回 z 的值。

因此,我们使用三元运算符得到了三个数字中的最大值。

嵌套三元运算符

我们也可以将一个三元运算符嵌套在另一个三元运算符中。这被称为嵌套三元运算符

三元运算符示例

这是一个使用嵌套三元运算符查找 3 个数字中最大值的程序。

示例

编译并运行

输出

The number is: Positive Even

解释

在上面的示例中,我们使用了以下嵌套三元运算符:

第一个条件 (num>0) 检查数字是否为正数。如果结果为 true,它会评估第二个条件 (num % 2 == 0) 来检查它是正偶数还是正奇数。如果条件 (num > 0) 为 false,则评估条件 (num < 0) 来确定给定的数字是负数还是零。

注意:嵌套三元运算符对于简短的条件很有用,但它会增加代码的复杂性。因此,在复杂的情况下,我们应始终优先考虑可读性。

要记住的重要事项

  • 三元运算符作为 if-else 的有效替代方案,因为它们缩短了代码的表示和可读性。
  • Java 只包含一个条件运算符,称为三元运算符,它操作三个操作数。
  • 右结合性是三元运算的一个属性。
  • 语法允许将三元运算符放在其他运算符内部。
  • 由于其功能,三元运算符不能完全替代 if-else 语句,因为它们在值赋值和值返回功能方面表现出色。
  • 三元表达式作为一种提供结果值的表达式,用于变量赋值或其他表达式。

Java 三元运算符选择题

1. 三元运算符评估什么?

  1. 一个条件并返回两个表达式之一
  2. 一个循环并中断它
  3. 一个变量并更改其值
  4. 以上都不是
 

答案 1)

解释:它用于评估布尔表达式。该运算符决定将哪个值分配给变量。它是唯一接受三个操作数的条件运算符。它执行一个条件并返回两个表达式之一。


2. 三元运算符的语法是什么?

  1. condition && expression
  2. (condition) ? expression1 : expression2
  3. condition || expression
  4. expression ? condition : expression1
 

答案 2)

解释:三元运算符的语法是:(condition)?expression1:expression2


3. 三元运算符可以嵌套吗?

  1. 是的
  2. 不能
  3. 在某些情况下
  4. 以上都不是
 

答案 1)

解释:我们也可以将一个三元运算符嵌套在另一个三元运算符中。


4. Java 三元运算符可以与 ___ 一起使用。

  1. if-else 语句
  2. while, do while 循环
  3. for 循环, 增强 for 循环
  4. 全部
 

答案 4)

解释:三元运算符可以与所有循环和 if-else 语句一起使用。


5. 三元运算符的 False Part Expression ____ 返回一个值。

  1. 可能
  2. 可以
  3. 必须
 

答案 3)

解释:上面的语句说明,如果条件返回 true,则执行 expression1;否则,执行 expression2,并将最终结果存储在变量中。


下一主题Java 抽象