计算int数组的总数

时间:2015-11-01 12:08:37

标签: java arrays

我有这段代码:

int sum = 0;
    for(int i = 0; i < POPULATION_SIZE; i++){ // loop through the population (0-99)
        for(int j = 0; j < 16; j++){ // loop through the individuals (in this case the cities) 
            sum = COST[j][j+1]; 
        }
        fitness[i] = sum;
    }  

我正在尝试添加所有费用。 Sum意味着等于添加所有元素的总和。

我面临的问题是,每次循环运行时,sum都会设置为下一个值,作为添加前一个值和当前值的总和。

鉴于人们的答案,我现在可以看到我相当愚蠢的错误。在你复杂化之前,这是一个被记住的基本面吗?

3 个答案:

答案 0 :(得分:1)

要累积sum,请将sum = ...更改为sum += ...

sum += COST[j][j+1];
是的,我不知道你的最终目标,但我想知道你是否也想在外部int sum = 0循环中移动for。 也许不是,这取决于你想要做什么,这只是看起来很可疑,这就是你的考虑。

答案 1 :(得分:1)

您要将每个值分配给变量,您需要将值添加到变量中。您可以使用+=运算符。

要获得每个总体的总和,需要在外部循环内初始化变量:

for(int i = 0; i < POPULATION_SIZE; i++){ // loop through the population (0-99)
    int sum = 0;
    for(int j = 0; j < 16; j++){ // loop through the individuals (in this case the cities) 
        sum += COST[j][j+1]; 
    }
    fitness[i] = sum;
}

注意:我不知道您的数据是如何排列的,但在COST[j][j+1]中您对两个索引使用变量j,您似乎应该使用i他们。

答案 2 :(得分:0)

添加+ =此运算符以对值进行求和;

int sum = 0;
    for(int i = 0; i < POPULATION_SIZE; i++){ // loop through the population (0-99)
        for(int j = 0; j < 16; j++){ // loop through the individuals (in this case the cities) 
            sum += COST[j][j+1]; 
        }
        fitness[i] = sum;
    }