在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);
例如,
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);