public class DosEquis{
public static void main(String [ ] args){
int i =0;
char x='X';
System.out.println( true ? x : 0 ); // (1)
System.out.println(false? i : x); // (2)
}
}
上面的程序的结果是:X88;不是我想的XX;我菜。。5555555555555555。
对于条件操作符JAVA中有一定的操作规则:
1) 如果第二个和第三个操作数的类型一样的话,那么它就是条件表达式的类型。
2) 如果第二个操作数的类型是T,T可以是byte ,short ,char.而另一个操作数的类型是Int类型的常量(常量哈哈),那么条件表达式的结果还是T;
3) 其他情况下,表达式的类型就是两个操作数类型的提升。
对于上面的程序,(1)调用的其实是PrintStream.println(char ).
(2)调用的其实是PrintStream.println(int );所以打印出了数值。。哈哈
又学到了一小点点知识。。顺便写一下子哈哈o(∩_∩)o...哈哈