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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 窦超 黑马帝   /  2011-12-18 21:13  /  2184 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 窦超 于 2011-12-18 21:30 编辑

class  OperateDemo1
{
        public static void main(String[] args)
        {
                int x= 3,y;
                y = (x>2)?100:200;
                System.out.println('y'+y);
        }
}
这段代码编译打印之后出来的数字是221,我对照ascii码表验证了好久也没弄明白他是输出了什么。。。太悲催了,转不过弯来了。求解

评分

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

查看全部评分

4 个回复

倒序浏览
本帖最后由 余松霖 于 2011-12-18 21:27 编辑

你可以再查下ASCII码表.    字符"y"对应的ASCII码值是121     y=100     "y"+y就是221了.

评分

参与人数 1技术分 +1 收起 理由
admin + 1 答题有奖!

查看全部评分

回复 使用道具 举报
小y字符对应的数字是121,变量y的值是100。所以121+100=221
回复 使用道具 举报
窦超 黑马帝 2011-12-18 21:30:01
板凳
呵呵。。。解决了。。。谢谢群里的兄弟们。。。是自己太马虎了。。。
回复 使用道具 举报
'y'+y  = (int)'y' + y ;  
char类型自动提升成了int
字符y对应的asci码是121
int n= (int)'y';
System.out.println(n);

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马