三元运算符特别注意:条件判断变量类型的统一问题

无论是在Java还是C语言中,条件运算符都对判断符‘?’之后的变量类型都是有一定的要求的:

?之后的变量或者数据都必须能够统一成为一个类型:

例如

 三目运算符后integer和aDouble对应的是包装类Integer和Double,该三目运算符输出的结果是1.0,原因是三目运算符要求判断符之后的变量能够统一类型,所以Integer被编译器升格为Double,从而输出的结果是1.0。

当然,如果在判断符之后的数据类型是String和Integer,这个时候编译器就会报错,两者是没有办法统一在一起的。

这种问题在C语言当中也存在

虽然结果对应的是1,但是由于需要将1升格为1.0的double类型,所以需要将%d改为%lf输出。

posted @ 2021-02-07 20:06  雾漫大武汉  阅读(316)  评论(0编辑  收藏  举报