在使用三元表达式,表达式 ? 表达式成立执行块 : 表达式不成立执行块。只能有两个值的选择。而在有些时候程序中需要有3个这样的值判断,但是又不想用if switch等这些分支语句繁琐的写一遍。那么这个时候,还是能用三元表达式的,只要将三元表达式嵌套起来使用,就可以将它变成多个选择。
//经典标准的三元表达式
int type = 0;
String typeNumer = type == 0 ? "type0" : "type1";//两个值的选择
//三目运算嵌套组合
type = 2;
typeNumer = type == 0 ? "type0" : (type == 1 ? "type1" : "type2");
System.out.println(typeNumer);
//变得有3个选择,或变得更多
走个DEMO查看一下,java:
/**
* Copyright (C), 2000-2021, XXX有限公司
* FileName: QuaternionOperator
* Author: wangyetao
* Date: 21-10-29 02:54:06
* Description: 三目运算嵌套组合
* History:
* <author> <time> <version> <desc>
* 作者姓名 修改时间 版本号 版本描述
*/
package simple.callback.quaternionoperator;
/**
* @ClassName: QuaternionOperator
* @Description: java类描述
* @Author: wangyetao
* @Date: 21-10-29 02:54:06
*/
public class QuaternionOperator {
public static void main(String[] args) {
//三目运算
int type = 0;
String typeNumer = type == 0 ? "type0" : "type1";
System.out.println(typeNumer);
//三目运算嵌套组合
type = 1;
typeNumer = type == 0 ? "type0" : (type == 1 ? "type1" : "type2");
System.out.println(typeNumer);
//三目运算嵌套组合
type = 2;
typeNumer = type == 0 ? "type0" : (type == 1 ? "type1" : "type2");
System.out.println(typeNumer);
//三目运算嵌套组合
type = 3;
typeNumer = type == 0 ? "type0" : (type == 1 ? "type1" : (type == 3 ? "type3" : "type4"));
System.out.println(typeNumer);
//三目运算嵌套组合
type = 5;
typeNumer = type == 0 ? "type0" :
(type == 1 ? "type1" : (type == 2 ? "type2" : (type == 3 ? "type3" : (type == 4 ? "type4" : (type == 5 ? "type5" : (type == 6 ? "type6" : (type == 7 ? "type7" : "type8")
))))));
System.out.println(typeNumer);
//三目运算嵌套组合
type = 6;
typeNumer = type == 0 ? "type0" :
(type == 1 ? "type1" : (type == 2 ? "type2" : (type == 3 ? "type3" : (type == 4 ? "type4" : (type == 5 ? "type5" : (type == 6 ? "type6" : (type == 7 ? "type7" : "type8")
))))));
System.out.println(typeNumer);
//三目运算嵌套组合
type = 10;
typeNumer = type == 0 ? "type0" :
(type == 1 ? "type1" : (type == 2 ? "type2" : (type == 3 ? "type3" : (type == 4 ? "type4" : (type == 5 ? "type5" : (type == 6 ? "type6" : (type == 7 ? "type7" : "type8")
))))));
System.out.println(typeNumer);
}
}
输出:
type0
type1
type2
type3
type5
type6
type8
Process finished with exit code 0