三元运算符特别注意:条件判断变量类型的统一问题
无论是在Java还是C语言中,条件运算符都对判断符‘?’之后的变量类型都是有一定的要求的:
?之后的变量或者数据都必须能够统一成为一个类型:
例如
三目运算符后integer和aDouble对应的是包装类Integer和Double,该三目运算符输出的结果是1.0,原因是三目运算符要求判断符之后的变量能够统一类型,所以Integer被编译器升格为Double,从而输出的结果是1.0。
当然,如果在判断符之后的数据类型是String和Integer,这个时候编译器就会报错,两者是没有办法统一在一起的。
这种问题在C语言当中也存在
虽然结果对应的是1,但是由于需要将1升格为1.0的double类型,所以需要将%d改为%lf输出。