Java 中的三元运算符

原文:https://www.studytonight.com/java-examples/ternary-operator-in-java

条件语句用于检查条件是真还是假,并根据结果决定下一步。Java 中的三元运算符用于替换条件语句。它们之所以这样叫,是因为它们对三个操作数进行运算。它们提供了更清晰的和更易读的代码,我们可以在一行代码中编写 if-else 逻辑。让我们学习一下如何在 Java 中使用三元运算符。**

三元运算符使用问号(?)冒号(:)**分隔条件和将根据条件结果评估的表达式。三元运算符的一般语法如下所示。

Ternary operator syntax

如果条件评估为真,那么表达式 1 将被执行,否则表达式 2 将被执行。上述逻辑可以使用 if-else 语句编写,如下所示。

if(condition)
    variable = expression1;
else
    variable = expression2;

这里需要注意的一点是表达式必须返回值。我们不能使用返回空值的方法。考虑下面的 if-else 代码。

public static void main(String args[])
{
    if (10 > 5)
        System.out.print("True");
    else
        System.out.print("False");
}

我们不能用三元运算符做同样的事情。下面使用三元运算符编写的代码将返回一个错误。

public static void main(String args[])
{
    (10 > 5) ? System.out.print("True"): System.out.print("False");
}

示例:Java 中的三元运算符

让我们有两个变量,一个是 int 数据类型,另一个是 String 数据类型。如果整数等于 10,那么字符串的值应该是,否则应该是而不是十

使用三元运算符的 Java 代码可以写成如下所示。

public static void main(String args[])
{
    int i = 11;
    String s;
    s = (i == 10) ? "ten" : "not ten";
    System.out.print(s);
}

不是十点

示例:Java 中的嵌套三元运算符

像嵌套的 if-else 一样,三元运算符也可以嵌套。在这里,我们试图根据一个学生的分数来找到他的分数。如果他的分数大于 90,那么成绩就是 A,如果分数在 50 到 90 之间,那么成绩就是 B,否则成绩就是 c。

下面的 Java 代码正在实现嵌套三元运算符。

public static void main(String args[])
{
    int marks = 65;
    char grade;
    grade = (marks >= 90) ? 'A' : (marks < 90 && marks >= 50) ? 'B' : 'C';
    System.out.print(grade);
}

B

为了更好的可读性,我们还可以用下面的格式编写上面的代码。

public static void main(String args[])
{
    int marks = 65;
    char grade;

    grade = (marks >= 90) ? 'A' 
            :(marks < 90 && marks >= 50) ? 'B' 
            :'C';

    System.out.print(grade);
}

B

摘要

三元运算符用于在单行中编写 if-else 条件语句。它们可以使我们的代码更简洁,也更容易理解。然而,对于嵌套的 if-else 语句和 if-else if-else 语句,三元运算符可能很难理解。它们应该主要用于替换简单的 if-else 语句。