2016-03-05 50 views
-2

我是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

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

当然有多种方式来实现这个目标,但也许一个简单的方法是使用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/,它旨在利用一个参数,它是反复运行的次数。