如何使用用户输入在数组中找到范围?

时间:2017-12-06 10:58:54

标签: java arrays user-input

package assignment;

import java.util.Arrays;
import java.util.Scanner;


public class assignment {


    public static void main(String[] args) {
        double[] a = new double[] {9.0, 8.0, 7.0, 6.0, 5.0, 4.0};

        int index1;
        Scanner user_input = new Scanner(System.in);
        System.out.println("index 1 invoeren");
        index1 = user_input.nextInt();

        int index2;
        System.out.println("index 2 invoeren");
        index2 = user_input.nextInt();

        //System.out.println(index1);
        //System.out.println(index2);


    }

    public void DoubleSegsum(double[] a, int from, int to){

    }

}

我需要编写一个方法DoubleSegsum(如上所示),我可以在位置afrom之间得到to元素的总和。 例如(a,2,4)应该返回13。 我正在尝试用

Arrays.asList(a).indexOf(index1)

但每次都会给我-1 我不知道如何在其他方法中使其恶化

5 个答案:

答案 0 :(得分:3)

public static void DoubleSegsum(double[] a, int from, int to){

            double sum=0;
            for(int i=from;i<to;i++){
                sum+=a[i];
            }
        System.out.println(sum);
    }

答案 1 :(得分:1)

您可以使用简单的for循环执行此操作,使用start和stop,如:

double sum=0;
for(int i=start; i<stop; i++)
sum+=array[i];

答案 2 :(得分:1)

这样的东西?

public void DoubleSegsum(double[] a, int from, int to){
    double sum = 0.0;
    for(;from < to; from++){
      sum += a[from];
    }
    System.out.println(sum);
}

答案 3 :(得分:1)

public double DoubleSegsum(double[] a, int from, int to){
    double sum = 0;
    for (int i = from; i < to && i < a.length; i++) {
        sum += a[i];
    }

    return sum;
}

答案 4 :(得分:1)

public double doubleSegsum(double[] a, int from, int to) {
    return DoubleStream.of(a).skip(from).limit(to-from).sum();
}