关于java三元运算符的

cykabc 2013-04-23 10:22:49
int n;
System.out.println(n>9?(char)(n-2+'a'):n);//如果n=12,为什么结果打印的是67呢?
...全文
186 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cykabc 2013-04-26
  • 打赏
  • 举报
回复
不好意思,我把“a”小写了。我想说的结果为什么打印的是数字?
Foxeagle 2013-04-24
  • 打赏
  • 举报
回复
http://www.2cto.com/kf/201209/156069.html
jky346973658 2013-04-23
  • 打赏
  • 举报
回复
因为Java底层是用int计算的,肯定输出的是数字啊 如果你是想输出字符串的话,可以在输出语句中用Integer.toHexString(),代码应该这样写: char c = n>9 ? n-2+'a' :n; System.out.println(Integer.toHexString(c));
石馨宇 2013-04-23
  • 打赏
  • 举报
回复
int n = 12;
		System.out.println(n>9?(char)(n - 2 + 'a') : n);
我算的也是107哈 是我理解错题目了 还是楼主发错了哈
anshiny 2013-04-23
  • 打赏
  • 举报
回复
最终结果是:107 System.out.println((char) (n>9? n-2+'a' : n) ); n=12时,取(char)(n-2+'a')的值,就是107
LCore 2013-04-23
  • 打赏
  • 举报
回复
引用 1 楼 shine333 的回复:
你想打印字母? Java code?1System.out.println((char) (n>9? n-2+'a' : n) ); 原先的代码 condition ? char : int 整个表达式由于不平衡,最终还是int类型
++
shine333 2013-04-23
  • 打赏
  • 举报
回复
你想打印字母?
System.out.println((char)  (n>9? n-2+'a' : n)   );
原先的代码 condition ? char : int 整个表达式由于不平衡,最终还是int类型

62,621

社区成员

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

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