扫描仪无法使用while循环

时间:2013-09-18 19:03:13

标签: java java.util.scanner

也许我的google-fu很糟糕,但我很难搞清楚如何做到这一点。我正在尝试让扫描程序读取字符串,添加输入并返回值。我觉得我只是缺少一些东西...例如,我不确定如何将变量设置为扫描仪中的第一个双倍。

import java.util.Scanner;


public class adding {
  public static double sum(Scanner input){
    Scanner s=new Scanner (System.in);
    double i = (s.nextDouble());
    double sumAnswer = 0;
    while (s.hasNext()){
      sumAnswer = sumAnswer + i;
      i = s.nextDouble();
    }
    return sumAnswer;
  }

  public static void main(String[] args){
    System.out.println(sum(new Scanner("1.2 2.8 3.9")));
  }
}

2 个答案:

答案 0 :(得分:3)

您真的不需要i变量。

而且,正如已经提到的,没有2 Scanner的。

public static double sum(Scanner input){
  double sumAnswer = 0;
  while (input.hasNext()){
    sumAnswer += input.nextDouble();
  }
  return sumAnswer;
}

答案 1 :(得分:0)

传递输入后,不应重置扫描仪。

public class adding {
     public static double sum(Scanner input){
     double i = (input.nextDouble());
     double sumAnswer = 0;
     while (input.hasNext()){
          sumAnswer = sumAnswer + i;
          i = input.nextDouble();
     }
     return sumAnswer;
}

也许,应该为你做得更好。我也可能在那里混合......