使用数组索引作为循环中的计数器来对其值求和

时间:2015-05-16 09:29:15

标签: java arrays oop

array[0]=7
array[1]=3
array[2]=6
array[3]=1

我想将数组索引用作循环中的计数器并对数组的值进行求和

离。计数器从索引2开始,返回7. 6 + 1

计数器从索引1开始并返回10. 3 + 6 + 1

public class ar {

    static int[] a = new int[8];

    {
        a[0]= 6;
        a[1]= 5;
        a[2]= 34;
        a[3]= 53;
        a[4]= 2;
        a[5]= 7;
        a[6]= 31;
        a[7]= 60;
    }

    static int b(int num){
        int c = 0;

        for(int i = a[num]; i<a.length; i++) {
            c = c + a[num];
        }
        return c;   
    }

    public static void main(String[] args) {
        System.out.println(b(2));
    }
}

在任何索引处返回0。我想我在

错误地混合了索引和值
int i = a[num] 

c = c + a[num];

2 个答案:

答案 0 :(得分:1)

尝试使用b方法:

int c=0;
for(int i=num; i<a.length;i++){
    c = c + a[i];}
return c;

答案 1 :(得分:1)

只是一个小小的改变:

static int b(int num){
     int sum = 0;
     for (int index = num; index < a.length; index++) {
        sum = sum + a[index];
     }
     return sum;
}

您从错误的索引开始而没有访问正确的元素(不使用i)。

您需要将static关键字添加到初始值设定项中。否则,只有在创建类的实例时才会执行代码,而不是静态的实例。

static {
    a[0]= 6;
    a[1]= 5;
    a[2]= 34;
    a[3]= 53;
    a[4]= 2;
    a[5]= 7;
    a[6]= 31;
    a[7]= 60;
}

注意:尝试为代表其功能的变量指定名称。它将有助于使您的代码更具可读性。在这个例子中,很明显你打算做什么,但在更复杂的情况下,没有它会变得混乱。