char x = 'B';
int i = 0;
System.out.println(true?x:0);
System.out.println(true?x:1111111110);
System.out.println(false?i:x);
为什么结果为:B
66
66
说错了,是16位
char x='B';
System.out.println(true?x:65535);
System.out.println(true?x:65536);
你可以看下
其实很简单,就是因为Java编译器遇到条件运算符前后类型不一致的时候,取可以隐式转换的一侧。
char可以转int,反之不可以。所以后两行相当于
System.out.println((int)x);