黑马程序员技术交流社区

标题: 这个问题转不过弯来了。。。 [打印本页]

作者: 窦超    时间: 2011-12-18 21:13
标题: 这个问题转不过弯来了。。。
本帖最后由 窦超 于 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码表验证了好久也没弄明白他是输出了什么。。。太悲催了,转不过弯来了。求解
作者: 余松霖    时间: 2011-12-18 21:24
本帖最后由 余松霖 于 2011-12-18 21:27 编辑

你可以再查下ASCII码表.    字符"y"对应的ASCII码值是121     y=100     "y"+y就是221了.
作者: 应国炎    时间: 2011-12-18 21:27
小y字符对应的数字是121,变量y的值是100。所以121+100=221
作者: 窦超    时间: 2011-12-18 21:30
呵呵。。。解决了。。。谢谢群里的兄弟们。。。是自己太马虎了。。。
作者: 胡遇潮    时间: 2011-12-18 21:35
'y'+y  = (int)'y' + y ;  
char类型自动提升成了int
字符y对应的asci码是121
int n= (int)'y';
System.out.println(n);




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2