如何在while循环中使用扫描仪

时间:2019-09-13 20:27:23

标签: java loops while-loop java.util.scanner

我正在尝试创建一种方法,该方法将返回数字中每个双精度x的n个根的总和,其中数字由零个或多个双标记(由空格分隔)组成,n为正。

示例:sumOfRoots(“ 1.0 4.0 9.0 16.0”,2)为10,sumOfRoots(“”,3)为0。

 public static double sumOfRoots (String numbers, int n)
    {
        Scanner scanner = new Scanner(numbers);
        Scanner b = scanner.useDelimiter(" ");
        int y = b.nextInt();
        double x = 0;
        while (b.hasNextDouble())
        {
            x = x + (y ^ (1 / n));
        }
        return x;
    }

但是我继续抛出输入不匹配错误。对我可以更改以使其起作用的任何想法吗?

1 个答案:

答案 0 :(得分:4)

如果您希望使用Scanner,则可以这样修改代码:

public static double sumOfRoots(String numbers, int n){
    Scanner scanner = new Scanner(numbers);
    double sum = 0;
    while(scanner.hasNextDouble())
        sum += Math.pow(scanner.nextDouble(), 1d / n);
    return sum;
}

在Java中,^不是指数运算符(如注释中所述),因此您必须使用Math.pow()