java - 在循环中使用数组索引作为计数器来求和其值

标签 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];

最佳答案

只是一个小小的改变:

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

注意:尝试为代表其功能的变量分配名称。它将有助于使您的代码更具可读性。在这个例子中,你想要做什么是非常明显的,但在更复杂的例子中,如果没有的话,它会变得困惑。

关于java - 在循环中使用数组索引作为计数器来求和其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30273985/

相关文章:

java - 优化输入流读取速度更快/提高串联速度

java - GWT 与 Eclipse 下的 Maven。开发周期是多少?

java - JVM如何为Java中的自定义类扩展Object类?

javascript - 将数组作为 URL 参数传递 JavaScript/GAS

ios - UIView 职责(面向对象编程)

java - JLabel 不会更新,除非有什么东西导致方法挂起

arrays - 没有两个元素相邻的最大和

c++ - 结构作为基类 - C/C++ 互操作性

java - 使用双重否定来测试条件

javascript - 所有数组元素具有相同的值