最近开始自学Java,今天写了一个关于理解计数器控制循环的小程序,但是在输入的时候碰到点问题,希望大家能帮下忙。
设定的是输入10次,但运行时,只能输入5次,这是为什么?求解答,先谢过了

解决方案 »

  1.   

    要是System.in.skip(2),刚开始也不知道为什么要2,后来看下源代码,要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。