当您真的不需要时,您正在测试 z。您的三元运算符必须采用 cond ? ifTrue : ifFalse;
所以如果你有多个条件,你有这个:
条件1?ifTrue1 : cond2? if True2 : ifFalse2;
如果你明白这一点,请不要往下看。如果您仍然需要帮助,请看下面。
我还包括了一个不嵌套它们的版本,它更清晰(假设你不需要嵌套它们。我当然希望你的作业不需要你嵌套它们,因为那很丑!)
.
.
这是我想出的:
class QuestionNine
{
public static void main(String args[])
{
smallest(1,2,3);
smallest(4,3,2);
smallest(1,1,1);
smallest(5,4,5);
smallest(0,0,1);
}
public static void smallest(int x, int y, int z) {
// bugfix, thanks Mark!
//int smallestNum = (x<y && x<z) ? x : (y<x && y<z) ? y : z;
int smallestNum = (x<=y && x<=z) ? x : (y<=x && y<=z) ? y : z;
System.out.println(smallestNum + " is the smallest of the three numbers.");
}
public static void smallest2(int x, int y, int z) {
int smallest = x < y ? x : y; // if they are equal, it doesn't matter which
smallest = z < smallest ? z : smallest;
System.out.println(smallest + " is the smallest of the three numbers.");
}
}