关于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时,看看输出的内容
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时,看看输出的内容
相关文章推荐
- 关于System.in.read()
- System.setProperty("sun.net.client.defaultReadTimeout", "5000")关于Timeout的测试
- java输入system.in.read()
- 关于JAVA的Scanner(System.in)循环输入的一些问题与解决
- 关于System.in如何执行的问题
- System.in.read()的使用方法
- 关于system.in读入的数据,打印出来乱码问题
- System.in.read()使用
- System.in.read()问题
- how to mount /system as read/write in android?
- System.in.read()方法
- System.in.read()长度多2问题
- 关于ssh里面的Write operations are not allowed in read-only mode (FlushMode.NEVER)
- system.in.read()用法
- 提示系统启动关于误更改/var下诺干的权限问题,导致系统启动提示The System is running in low-graphics mode问题解决 By ACReaper
- 关于误更改/var下诺干的权限问题,导致系统启动提示The System is running in low-graphics mode问题解决 By ACReaper
- 黑马程序员——System.in.read()初次尝试
- System.in.read(); System.out.write();
- 利用System.in.read() 函数从键盘读入一系列字符
- System.in.read()的特殊地方