来自控制台的Java输入提供意外值

时间:2014-02-08 21:23:49

标签: java java.util.scanner stdin bufferedreader inputstreamreader

在给定的代码中,

  

输入:
1 1 7

     

输出:
1

输出应该是7.我缺少什么?

import java.io.*;
import java.util.*;

class compiler 
{
    public static void main(String args[] ) throws Exception 
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int testcases = Integer.parseInt(br.readLine());

        //  System.out.println("If this statement is added it works as expected!")

        int n=Integer.parseInt(br.readLine());

        System.out.println(n);
    }
}

*我也尝试使用扫描仪

3 个答案:

答案 0 :(得分:1)

这应该有效。如果您没有使用IDE,那么可能您更改了代码并且没有再次编译。所以你基本上运行一个具有不同输出的旧代码?

答案 1 :(得分:0)

事实上,在运行代码后,testcases将为1而n将为7(这将在控制台上打印 - 您的示例与给定的输出不匹配)。

也许这段代码有助于打印输出的最后一个输出:

int n;
while(br.readLine())
{
    n=Integer.parseInt(br.readLine());
}
System.out.println(n);

答案 2 :(得分:-3)

 The code must be like this if you want to use command line argument
 Public static void main(String ar[])
 {

  int i=(0;
  for(i=0;i<ar.length;i++)
  System.out.println(" "+ar[i]);

    }