日期:2014-05-20  浏览次数:20793 次

Help 新人疑问关于输入流
最近开始自学Java,今天写了一个关于理解计数器控制循环的小程序,但是在输入的时候碰到点问题,希望大家能帮下忙。


设定的是输入10次,但运行时,只能输入5次,这是为什么?

求解答,先谢过了

------解决方案--------------------
System.in.skip(2);
------解决方案--------------------
1.楼主可以看下api对于System.in.read()方法的描述( 在Inputstream类里):
   
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。


2.我自己写两个read程序来验证要跳过那两个字符:
import java.io.IOException;


public class TextAverage {
public static void main(String[] args) throws IOException {
int average;
for (int i = 0; i < 10; i++) {
System.out.print("请输入:");
average = System.in.read();
System.out.print(average + " ");
//System.in.skip(2);
}
}

}


在程序输出为:
请输入:1
49 请输入:13 请输入:10 请输入:2
50 请输入:13 请输入:10 请输入:3
51 请输入:13 请输入:10 请输入:4
52


楼主可以查下ascii码表,49,50,51分别是1,2,3;而另外那两个字符的ascii是13和10,对应的是换行和回车

3.对于输入为数值建议楼主使用Scanner或者BufferReader。