黑马程序员技术交流社区

标题: 大家帮忙看一下这个强转 [打印本页]

作者: 刚刚...    时间: 2014-10-11 09:57
标题: 大家帮忙看一下这个强转
class Test1
{
        static int x;
        public static void main(String [] args)
        {
                                System.out.println("Please enter :");
                try{ x=System.in.read();}
                                catch(Exception e) {System.out.println(e.getMessage());}
                while(x!='w')
                {
                        System.out.println((char)x);//这里为什么x要用强制转化?
                               try{ x=System.in.read();}
                                              catch(Exception e)//会抛出异常{System.out.println(e.getMessage());}
                }
        }
}
这里为什么要用强制转换,不转打印出什么??System.in.read()到底是怎么用的?
作者: weitz    时间: 2014-10-11 10:08
System.in.read() 从键盘读取一个字符
x=System.in.read(); 将一个字符赋给一个int,
如果不强转打印的是字符的ASCALL码
作者: 面具猴    时间: 2014-10-11 10:26
强制转换是为了把0~128内的int型数值转换为对应的ASCII码字符,如果不转输出的的就是int型数值,例如,键盘输入‘f’,如果不转输出的是数值102,转之后就是输出f.
System.in.read()从键盘读取到一个字符的输入,读取的值返回,如果接收返回值的变量是int型赋给他的是int型ASCII码值,如果接受的是char型就是键盘输入的字符
作者: 刚刚...    时间: 2014-10-11 10:29
面具猴 发表于 2014-10-11 10:26
强制转换是为了把0~128内的int型数值转换为对应的ASCII码字符,如果不转输出的的就是int型数值,例如,键盘 ...

大概了解了,刚做了下测试都打印了下,看了下码表!才搞明白码表是啥!! 谢谢




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