在java中,我们能否在三元运算符中同时使用else和else if,并在同一条语句中构造3个条件?

In java, can we use both else and else if in ternary operator and construct 3 conditions in the same statement?

例如,

int number = 10;

number > 99 && < 1000 ? "three digit number" : "not a three digit number";

结果是:不是三位数。

但如果数字 > 9 且小于 100,我想打印一个声明“两位数”, 在同一条语句中,不需要单独的条件来编码。

我们可以用 if 和 elseif 语句来做到这一点。 但是有没有办法用 java 中的三元运算符来做到这一点?

我相信作为“else”条件的第二个三元表达式可以实现您要查找的结果:

int number = 10;
String result = number > 99 && number < 1000 ? "three digit number" :
        (number > 9 && number < 100 ? "two digit number" : "not a two or three digit number");

请注意,这可能被认为不如等效的 if/else if 块可读,因此这是一种谨慎使用的技术。

如果要在三元运算符中使用 else-if,可以使用嵌套三元运算,但请注意,这不太可读。

int num = 5;
String result = (num > 9)?((num>99 && num<1000)?"Three digit number":"Two digit number"):"Single digit number";
System.out.println("Result = "+result);