格式: (条件表达式)?表达式1:表达式2;
条件表达式:最后结果需要一定为true或者false,如果为null运行后会报错,如果为其他字符代码格式错误,编译器会提示
表达式1:条件表达式为true时执行
表达式2:条件表达式为false时执行
这里表达式1,2可以是一个变量,一个固定的常量,一个方法,是一个可执行的表达式就行.
实例
String a = "a";
Integer b = 3;
Boolean c = true;
System.out.println(c ? a : b);
结果
a
2.表达式可以为常量变量,一个可执行的方法。
3.实例中a,b的类型不同,一个为string,一个为Interger 所以如果让 d = c ? a : b的话,需要注意d的类型.
第三点有个规则
1 如果表达式1和表达式2操作数具有相同的类型,那么它就是条件表达式的类型。
2 如果一个表达式的类型是byte、short、char类型的,而另外一个是int类型的常量表达式,且它的值可以用类型byte、short、char三者之一表示的,那么条件表达式的类型就是三者之一
3 否则,将对操作数类型进行二进制数字提升,而条件表达式的类型就是第二个和第三个操作数被提升之后的类型