三元算子中的多个条件

2022-09-02 02:26:43

首先,问题是“编写一个Java程序,使用三元运算符查找三个数字中的最小值。

这是我的代码:

class questionNine
{
    public static void main(String args[])
    {
        int x = 1, y = 2, z = 3;
        int smallestNum;

        smallestNum = (x<y && x<z) ? x : (y<x && y<z) ? y : (z<y && z<x) ? z;
        System.out.println(smallestNum + " is the smallest of the three numbers.");
    }
}

我试图在三元运算符中使用多个条件,但这不起作用。我缺席了几天,所以我真的不知道该怎么办,我老师的电话也关机了。有什么帮助吗?


答案 1

尝试

int min = x < y ? (x < z ? x : z) : (y < z ? y : z);

您还可以删除括号:

int min = x < y ? x < z ? x : z : y < z ? y : z;

答案 2

由于这是家庭作业,我不仅要给你答案,而是给你一个算法,这样你就可以自己解决它。

首先弄清楚如何使用单个三元运算符编写 min(x, y)。

一旦你有了这个,将min(x,y,z)的以下代码更改为使用三元运算符,然后在代码中替换你从上一步中计算出来的min(x,y)。

int min(x, y, z) {
    if (x <= y) {
        return min(x, z);
    } else {
        return min(y, z);
    }
}

推荐