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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刚刚... 初级黑马   /  2014-10-11 09:57  /  1054 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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()到底是怎么用的?

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

3 个回复

倒序浏览
System.in.read() 从键盘读取一个字符
x=System.in.read(); 将一个字符赋给一个int,
如果不强转打印的是字符的ASCALL码
回复 使用道具 举报
强制转换是为了把0~128内的int型数值转换为对应的ASCII码字符,如果不转输出的的就是int型数值,例如,键盘输入‘f’,如果不转输出的是数值102,转之后就是输出f.
System.in.read()从键盘读取到一个字符的输入,读取的值返回,如果接收返回值的变量是int型赋给他的是int型ASCII码值,如果接受的是char型就是键盘输入的字符

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

回复 使用道具 举报
面具猴 发表于 2014-10-11 10:26
强制转换是为了把0~128内的int型数值转换为对应的ASCII码字符,如果不转输出的的就是int型数值,例如,键盘 ...

大概了解了,刚做了下测试都打印了下,看了下码表!才搞明白码表是啥!! 谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马