小java?

来源:百度知道 编辑:UC知道 时间:2024/05/20 01:31:40
public class Conditional
{public static void main( String args[])
{int x=2;System.out.println("value is"+((x<1)?22.2:2));
}}
输出什么?
bu dui
答案为什么是2.0

2.0
这个是运算结果,为什么是2.0不是2,
我想是因为前面22.2的关系,如果是22的话,那么结果就是2了
我改了一下
public class Conditional
{public static void main( String args[])
{int x=2;
System.out.println("value is"+((x>1)?22:2.0));
}}

结果就是22.0,所以我想这个和后面两个数的类型还有关

我再改了一下
public class Conditional
{public static void main( String args[])
{int x=2;
System.out.println("value is"+((x>1)?22:"121212"));
}}

这就输出为22了,我想,如果它两个都是数字类型的时候,它会进行一定的类型转换的,呵呵,今天学到了一些!

(x<1)?22.2:2
这个语句的意思其实就和if-else关系差不多
如果(x<1)条件成立 那么就输入22.2这个值
如果(x<1)不成立 那么就返回2
这里x=2 那么x<1不成立 所以返回的值是2
还有 因为前边的22.2是属于浮点型的
而2是整形
而在?:后边的条件 两个条件是并列的关系的
如果是输出的话 它会采取字节叫大的类型
所以返回的是2.0

我解释不清楚但答案是value is2.0不知道为什么会这样,按道理Int型是不可能出现小数点的啊,还请高手留言!

System.put.println()默认输出类型是float型

水中の鱼儿泪分析的不错啊

2