使用for循环返回0的数组之和

时间:2014-08-18 14:00:38

标签: java

我在下面写了这段代码,它应该返回一个数组的总和。但它一直返回0.请有人帮忙吗?

public class sumArray {

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

    public static int sumArrayof(){
        int k;
        int sum = 0;
        int[] bs = new int[20];

        for (k=0; k<bs.length; k++) {

            sum = sum + bs[k];

        }
        return sum;
    }
}

8 个答案:

答案 0 :(得分:2)

如上所述,该课程没用。

该方法返回零,因为您正在对其中包含全零的数组求和。它完全按照你的要求去做。

也许你打算做这样的事情:

public class ArrayUtils {

    public static void main (String [] args) {
        if (args.length > 0) {
            int [] values = new int[args.length];
            for (int i = 0; i < args.length; ++i) {
                values[i] = Integer.parseInt(arg);
            }
            System.out.println(ArrayUtils.sum(values));
        }
    }

    public static int sum(int [] values) {
        int sum = 0;
        if (values != null) {
            for (int value : values) { 
                sum += value;
            }
        }
        return sum;
    }
}

答案 1 :(得分:2)

您的方法应该接收一个数组作为参数,而不是生成一个数组本身。

像这样:

public static int sumArrayof(int[] data) {
    int k;
    int sum = 0;   
    for (k=0; k<data.length; k++) {
        sum = sum + data[k];
    }
    return sum;
}

答案 2 :(得分:0)

这是预期的。

你制作了一个空数组

int[] bs = new int[20]; 

// as good as
// int[] bs = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

仅包含零。

因此sum = 0

修复初始化数组的初始值,例如

int[] bs = {1, 2, 3, 4 .......................};

答案 3 :(得分:0)

Int数组仅初始化。因此填充了默认值。所以所有20个元素都只有0。所以迭代并添加20个零元素。结果是零。

答案 4 :(得分:0)

你的数组充满了零。 尝试类似的东西:

int[] bs = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

或以其他方式初始化它(如在另一个循环中)或从main方法输入args获取它。

答案 5 :(得分:0)

你的数组由20个整数组成,但你永远不会初始化它们,因此它们是0。

int[] bs = new int[20];
System.out.println(Arrays.toString(bs)); // <-- 20 0s.
for (k=0; k<bs.length; k++) {
  sum = sum + bs[k];
}
return sum;

20 * 0 0。

答案 6 :(得分:0)

首先,你需要用一些数据填充这个数组。

答案 7 :(得分:0)

如前所述,您需要在对数组进行求和之前为其指定值。 你可以这样做:ps:尽管你可能想要分配更多有意义的数字;):

Random random = new Random();

public int getSomeValue(){
    return random.nextInt(); // your logic to get a value 
}

for (k=0; k<bs.length; k++) {

    bs[k] = getSomeValue();

}

for (k=0; k<bs.length; k++) {

    sum = sum + bs[k];

}