黑马程序员技术交流社区
标题:
有关三目运算符的输出问题~求大神指教~!
[打印本页]
作者:
牛牛
时间:
2013-8-9 16:37
标题:
有关三目运算符的输出问题~求大神指教~!
本帖最后由 牛牛 于 2013-8-9 16:48 编辑
public static void main(String[] args) throws Exception {
int i = 2;
System.out.println(false? i:'E');//输出69
System.out.println(false? 2:'E');//输出E
System.out.println(true? i:'E');//输出2
System.out.println(true? 2:'E');//输出
}
为什么第二行输出69第三行输出E?
为什么第四行输出2第五行输出口 ?
作者:
longlangcx
时间:
2013-8-9 16:46
这是哪里的题目?刚才刚有个兄弟问完...
三元运算符的冒号 左右两边的类型决定了表达式最终的值。
两边的值是一个char与一个0-65535之间的直接常量时,表达式的结果为char。所以第3行和第5行输出E和口。第5行输出的是'\u0002'对应的字符。
两边的值是一个char与一个int变量时,char会自动被提升为int,此时表达式结果为int。所以第2行和第4行输出69和2。69是'E'对应的ASCII值。
作者:
牛牛
时间:
2013-8-9 16:55
longlangcx 发表于 2013-8-9 16:46
这是哪里的题目?刚才刚有个兄弟问完...
三元运算符的冒号 左右两边的类型决定了表达式最终的值。
恩~谢谢大神明白了~ System.out.println(true? 65536:'E');//输出65536
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2