A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 李建锋 黑马帝   /  2011-12-5 22:27  /  5068 人查看  /  23 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 jxljf1989 于 2011-12-6 09:52 编辑

n=67;
System.out.println(n>9?n-67+'A':n);会不会输出字母,请解释原因!

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

23 个回复

正序浏览
马伟奇 黑马帝 2011-12-12 23:05:47
24#

当字符与整数运算的时候,字符会自动向上转型,转成int,所以打印出来的就是整数
回复 使用道具 举报
{:soso_e183:}
回复 使用道具 举报
周胜 黑马帝 2011-12-8 00:46:21
22#
0+'A'  =  int + char...  char会自动转换成int型。。
回复 使用道具 举报
之前我也一直纠结这个问题,今天总算是学习了。。。。。
回复 使用道具 举报
刘海涛 发表于 2011-12-5 22:38
不会。

n>9?n-67+'A':n

原来如此啊,学习了,
回复 使用道具 举报
箫庐 发表于 2011-12-6 17:18
不会:

   char short byte三种类型参与运算时,会自动强转为int类型; 'A'在ASCII中对应的是 65,所以转为65 ...

你中了!
回复 使用道具 举报
箫庐 黑马帝 2011-12-6 17:18:29
18#
不会:

   char short byte三种类型参与运算时,会自动强转为int类型; 'A'在ASCII中对应的是 65,所以转为65参与运算;

  结果上面以给出.

刚上基础班第五天.嘿嘿,共勉~~


评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

回复 使用道具 举报
刘元霄 发表于 2011-12-6 12:35
不会。char 会升成int

恩,牛!
回复 使用道具 举报
不会。char 会升成int
回复 使用道具 举报
本帖最后由 颜小飞 于 2011-12-6 11:40 编辑
jxljf1989 发表于 2011-12-6 09:50
那么在n〉9 ,System.out.println(n>9?(char)(n-67+'A'):n)会不会输出字母呢?;


不会,字符A在括号进行运算时同样会转换为int 类型进行运算,结果还是为65
回复 使用道具 举报
wsssx 2011-12-6 11:28:40
14#
提示: 作者被禁止或删除 内容自动屏蔽
回复 使用道具 举报
杨强 黑马帝 2011-12-6 11:22:15
13#
jxljf1989 发表于 2011-12-6 09:50
那么在n〉9 ,System.out.println(n>9?(char)(n-67+'A'):n)会不会输出字母呢?;

不能  两边类型不同 自动转为int 输出的还是数字
回复 使用道具 举报
刘海涛 发表于 2011-12-6 09:59
不会 记住 ":"  两边的类型必须是一样的,如果可以自动转,就会自己转,不能转就编译出错。
你的虽然你的 ...

恩,强!
回复 使用道具 举报
本帖最后由 刘海涛 于 2011-12-6 10:01 编辑
jxljf1989 发表于 2011-12-6 09:50
那么在n〉9 ,System.out.println(n>9?(char)(n-67+'A'):n)会不会输出字母呢?;


不会 记住 ":"  两边的类型必须是一样的,如果可以自动转,就会自己转,不能转就编译出错。
你的虽然你的左边是char类型,但是char类型自动转为了int  
System.out.println(n>9?(char)(n-67+'A'):(char)n)
如果你将右边也转为char 这时候输出字母

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
杨强 发表于 2011-12-6 08:46
不会 强转为char型才可以

那么在n〉9 ,System.out.println(n>9?(char)(n-67+'A'):n)会不会输出字母呢?;
回复 使用道具 举报
李建锋 黑马帝 2011-12-6 09:50:05
9#
刘海涛 发表于 2011-12-5 22:38
不会。

n>9?n-67+'A':n

那么在n〉9 ,System.out.println(n>9?(char)(n-67+'A'):n)会不会输出字母呢?;
回复 使用道具 举报
方书堂 黑马帝 2011-12-6 09:23:59
8#
本帖最后由 方书堂 于 2011-12-6 09:27 编辑

n=67 ,n-67+'A'=0+‘A’。因为0是Int型,那么'A'会自动转换成int,也就是对应的65
所以输出的会是65,而不会是字母

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

回复 使用道具 举报
杨强 黑马帝 2011-12-6 08:46:37
7#
不会 强转为char型才可以
回复 使用道具 举报
王青山 来自手机 黑马帝 2011-12-6 00:26:42
地板
不会,楼上几位讲的都很清楚了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马