您的位置:首页 > 其它

关于System.in.read()

2007-03-12 14:59 309 查看
a=(int)System.in.read();
System.in.read()这条语句默认读出的数据是char的,然后就转换成int数据,所以你的(int)转型不用都可以,写成:a=System.in.read(); 结果还是一样的。
因为默认接收到的是char型的,然后才转换成int型,所以你应该要知道char和int的对应关系
char '0' 对应 int 48
char '1' 对应 int 49
……如此类推
char '9' 对应 int 57

char 'a' 对应 int 97
char 'b' 对应 int 98
…………
你自己查查资料。你还要了解的是System.in.read();每次只读取一个char。就是说如果你输入102,你第一次使用System.in.read();读到的char 1 ,然后转换成int 就是49 ,如果你再使用System.in.read();读取,就会读到 char 0,结果转换成int 就是 48,再使用System.in.read();读取就是 char 2 ,转换成 int 50。如果你输入a,就会得到int 97。

因此,你无论输入什么数字,因为都是只读了第一个数字,所以都会比58小。但是如果你输入a,就会比60打,因为其实得到的是int 97。

部分修改:
int i;
int a;
a=System.in.read();
i=System.in.read();
System.out.println(a);
System.out.println(i);
if(a>60) i=1;
else i=2;
switch(i)
{
case 1:
System.out.println("you pass the test!"+i);break;
case 2:
System.out.println("You not pass!"+i);break;
default:System.out.println("error");
}

你看看,当你输入1a时,看看输出的内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: