java 基本数据类型
发布网友
发布时间:2022-04-28 22:19
我来回答
共3个回答
热心网友
时间:2022-06-24 00:19
这是三目运算符的问题 首先x>4 为false 所以取后面的值。
因为你的三目中的类型数据类型不同,因此计算的结果会按照最大范围数据的类型进行处理,你这里范围最大的是那个99.9(double),所以虽然返回的结果是9,但也会转换为double类型,即9.0。
热心网友
时间:2022-06-24 00:20
参考:
首先,对于a?b:c的运算符,当a为true时,运算结果为b,当a为false时,运算结果为c;
然后,上述题目的解释:
运算时,必须是处于同一种数据类型进行运算的,所以,true?x:1111111110中,由于x是char型,1111111110是int型,而int型大于char型,所以运算时x将被自动转换成int型数据进行运算,'b'转换成int后的值等于98,所以,输出98;
同理,false?i:x中,i为int型、x为char型,所以也一律转换成int型进行运算,即x被转换成了98,由于?左侧的值为false,所以输出x的值,即98.
还是不明白的话可以问我^_^
热心网友
时间:2022-06-24 00:20
这里牵扯到了 数据类型提升的问题,这里三目运算冒号前后的数据类型要保持一直(类型型自动提升)所以int类型的9被提升成了double型变成了9.0