看看一下代码先:
char x='a';
double ii=2.0;
System.out.println(true?x:0);
System.out.println(false?ii:x);
运行结果:
a
97.0
呀呀呀,不应该是两个a吗?原来,条件操作符的第一个操作数和第二个操作数的类型是至关重要的,确保这两个操作数是同类型的是很必要的。否则会出现以上的情况。因为ii是double的,所以在第二个条件操作语句中a被转换成了double型的。
看看一下代码先:
char x='a';
double ii=2.0;
System.out.println(true?x:0);
System.out.println(false?ii:x);
运行结果:
a
97.0
呀呀呀,不应该是两个a吗?原来,条件操作符的第一个操作数和第二个操作数的类型是至关重要的,确保这两个操作数是同类型的是很必要的。否则会出现以上的情况。因为ii是double的,所以在第二个条件操作语句中a被转换成了double型的。