本帖最后由 黑马-唐磊 于 2013-3-8 10:45 编辑
李培根 发表于 2013-3-8 10:38
简单修改了下程序,这样应该就明白了,a是一个字符,回车是两个字符
public static void main(String[] ...
嗯,是正确答案 第一题程序运行到System.in.read(); 阻塞,等待用户输入System.in.read()//只是为了控制一个循环,
1、当输入a+回车(/r/n),相当于三次System.in.read(),因此会输出前三个值(1,2,3)2、当再次任意输入一个**+回车(/r/n),
也相当于三次System.in.read(),会输出数组的后三个值(4,5,6)
我们将第一题程序这样改写[code=java]public static void main(String[] args) throws Exception{
int[] x = {1,2,3,4,5,6};
for(int y:x){
System.out.println(System.in.read());
System.out.println(y);
}
}结果为:[code=java]97
1
13
2
10
3所以执行System.in.read()方法将从键盘缓冲区读入一个字节的数据,然后返回16位的二进制数据,其低8位为键盘的ASCII码,高8位为0。
a的ASCII码为97,换行\r的ASCII码为13,回车\n的ASCII码为10,从控制台输入a的操作为:输入a然后换行、回车。 |