简体   繁体   English

扫描仪无法使用While循环

[英]Scanner not working with while loop

Maybe my google-fu is just terrible, but I'm having a very hard time figuring out how to do this. 也许我的google-fu太糟糕了,但是我很难弄清楚该怎么做。 I'm trying to get a scanner to read a string, add the inputs, and return a value. 我正在尝试让扫描仪读取字符串,添加输入并返回值。 I feel like I am just missing something... for example, I'm not sure how to get a variable set to the first double in the scanner. 我觉得我只是缺少一些东西...例如,我不确定如何将变量设置为扫描仪中的第一个double。

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")));
  }
}

You don't really need an i variable. 您实际上不需要i变量。

And, as already mentioned, don't have 2 Scanner 's. 并且,如前所述,没有2个Scanner

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

You shouldn't be resetting the scanner after passing the input. 通过输入后,您不应该重置扫描仪。

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;
}

That ought to work better for you, maybe. 也许这应该对您更好。 I could also be mixing something up there... 我也可以在上面混一些东西...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM