Java 三元运算符

在本教程中,我们通过示例介绍 Java 中的三元运算符以及在 Java 中如如何使用三元运算符。

在本教程中,我们通过示例介绍 Java 中的三元运算符以及在 Java 中如如何使用三元运算符。

在 Java 中,在某些情况下,可以使用三元运算符替换 if...else 语句。在您了解三元运算符之前,请务必访问Java 条件语句章节了解条件语句的更多信息。

Java 中的三元运算符

三元运算符评估测试条件并根据条件的结果执行代码块。

Java 三元运算符的语法是:

condition ? expression1 : expression2;

这里, condition 是测试表达式

  • 如果 conditiontrueexpression1 被执行。
  • 如果 conditionfalseexpression2 被执行。

三元运算符需要 3 个操作数(condition , expression1, 和 expression2)。因此,名称三元运算符。

示例:Java 三元运算符

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        // 用户输入
        Scanner input = new Scanner(System.in);
        System.out.println("输入你的分数: ");
        double marks = input.nextDouble();

        // 三元运算符检查 marks 是否大于 40
        String result = (marks > 40) ? "通过了" : "未通过";

        System.out.println("你 " + result + " 考试。");
        input.close();
    }
}

输出 1

输入你的分数:
75
你 通过了 考试。

假设用户输入 75。然后,条件 marks > 40 结算结果为 true

输出 2

输入你的分数:
24
你 未通过 考试。

现在,假设用户输入 24。然后,条件 marks > 40 结算结果为 false

何时使用三元运算符?

在 Java 中,三元运算符可用于替换某些类型的 if...else 语句。例如:

public class Main {
  public static void main(String[] args) {

    int number = 24;

    if(number > 0) {
      System.out.println("正数");
    }
    else {
      System.out.println("负数");
    }
  }
}

使用三元运算符替换为如下所示代码:

public class Main {
  public static void main(String[] args) {

    int number = 24;

    String result = (number > 0) ? "正数" : "负数";
    System.out.println(result);
  }
}

输出

正数

在这里,两个程序给出相同的输出。但是,三元运算符的使用使我们的代码更简洁和更具可读性。

!! 注意:如果结果语句很短,您应该只使用三元运算符。

嵌套三元运算符

也可以在一个三元运算符中使用另一个三元运算符,这称为嵌套三元运算符。

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

public class Main {
  public static void main(String[] args) {

    // 创建变量
    int n1 = 2, n2 = 9, n3 = -11;

    // 使用嵌套三元运算符查找 3 个数字中最大值
    int largest = (n1 >= n2) ? ((n1 >= n3) ? n1 : n3) : ((n2 >= n3) ? n2 : n3);
    System.out.println("最大数:" + largest);
  }
}

输出

最大数:9

在上面的例子中,注意三元运算符的使用,

(n1 >= n2) ? ((n1 >=n3) ? n1 : n3) : ((n2 >= n3) ? n2 : n3);

说明:

  • (n1 >= n2) - 第一个测试条件,检查 n1 是否大于 n2
  • (n1 >= n3) - 如果第一个条件是 true,则执行的第二个测试条件
  • (n2 >= n3) - 如果第一个条件是 false,则执行的第三个测试条件

!! 注意:不建议使用嵌套的三元运算符。这是因为它使我们的代码更加复杂。