标准输入多行

时间:2016-03-05 19:23:09

标签: java cmd

我是Java的初学者。我写了那段代码,在CMD上编译它。

public class AA {
    public static void main (String[] args){
        int line=Integer.parseInt(args[0]);
        int i=0;
        while(i<line){
            double first_input = StdIn.readDouble();
            double second_input = StdIn.readDouble();
            double third_input = StdIn.readDouble();
            double average = first_input * 0.2 + second_input * 0.4 + third_input * 0.4;
            line-=1
            StdOut.println(average+"is..");
        }
    }
}

虽然我正在寻找这个:

2 15 22
2 5 77 
15,2 is...
33,2 is...

我得到的输出就是这样:

  2 15 22 
  15,2 is...
  2 5 77
  33,2 is...

我尝试了很多方法,但我没有解决方法。是否有一些我看不到的技巧?

1 个答案:

答案 0 :(得分:1)

根据我的理解,我会将计算值添加到变量中,然后输入所有值后,显示存储的值。

当然,有多种方法可以实现这一目标,但也许一个简单的方法就是使用StringBuffer。

    public static void main( String[] args )
{
    int line = Integer.parseInt( args[ 0 ] );
    int i = 0;
    StringBuffer sb = new StringBuffer();
    while ( i < line )
    {
        double first_input = StdIn.readDouble();
        double second_input = StdIn.readDouble();
        double third_input = StdIn.readDouble();
        double average = first_input * 0.2 + second_input * 0.4 + third_input * 0.4;
        sb.append( average );
        sb.append( " is..\n" );
        line -= 1;
    }
    StdOut.println( sb.toString() );
}

仅供参考,似乎OP正在使用库http://introcs.cs.princeton.edu/java/stdlib/并且它被设计为采用一个参数,即运行的迭代次数。