请教,一道题的执行思路?

qq_29448025 2017-07-15 05:42:29
    public static void main(String[] args) {
char a='A';
int i=0;
System.out.println((true?a:0)+","+(false?i:a));
}


请问结果为什么A,65 ,而不是A,A呀。
...全文
397 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mandsence 2017-08-02
  • 打赏
  • 举报
回复
引用
引用
三目运算的返回类型应该是和‘?’后面的数据类型一致的,在你的代码中如果把 i 的类型换成 char 结果就会和你想的一样
这是对于互相可以自动类型转换的数据类型来说的,如char,int,double等。但是如果有对象或者之间不可以相互转换类型的数据,那么,仍然按照数据本身的类型显示。 public static void main(String[] args) { String str = "a"; int i = 12; char chr = 'A'; System.out.println((true?i:str)+","+(false?i:str)); } 12,a
mky136 2017-07-18
  • 打赏
  • 举报
回复
三目运算的返回类型应该是和‘?’后面的数据类型一致的,在你的代码中如果把 i 的类型换成 char 结果就会和你想的一样
三仙半 2017-07-17
  • 打赏
  • 举报
回复
这个跟数据类型的自动转换有关
xiaovhao 2017-07-16
  • 打赏
  • 举报
回复
http://www.cnblogs.com/Lowp/archive/2012/09/03/2668154.html 看下这个吧,有对类型进行解释的
lyn584238910 2017-07-15
  • 打赏
  • 举报
回复
public static void main(String[] args) { char a='A'; int i=0; System.out.printlgn((true?a:0)+","+(false?i:a)); }//个人理解 第一个三目运算符应该是判断 a是否为空 不为空为true 为空为fasle 结果为A 第二个三目运算符应该是判断 i是否为空 不为空为true 为空为fasle 结果为0

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧