数组不会打印出其中的所有乘法,只打印一个

时间:2015-03-16 00:38:32

标签: java arrays parameters

您好我有一个我在全球范围内声明的数组;

static int numbers [] = {12,15,67,18,29,40,23,4,59,5};

我的主要成就了

  multiplyBy(3);

(3)确定将数组中每个数字乘以的内容。

我的代码' multiplyBy'方法是:

    public static void multiplyBy (int n)
    {
        int sum = 0;
        for(int i = 0; i < numbers.length; i++){
           sum = n * numbers[i];
        }
        System.out.println("The sum is: " + sum);

    }

当我运行代码时,它只会输出:

总和是:15

所以它似乎只是乘以数组的最后一个数字,我想让它乘以数组的每个元素并将其打印出来,任何想法我在这里出错?

1 个答案:

答案 0 :(得分:2)

您的错误是在每次迭代期间覆盖sum的值,或者将print语句置于循环之外,具体取决于您所希望的行为。

multiplyBy()更改为累积总和将如下所示:

public static void multiplyBy (int n)
{
    int sum = 0;
    for(int i = 0; i < numbers.length; i++){
       sum += n * numbers[i];
    }
    System.out.println("The sum is: " + sum);
}

并输出:

The sum is: 816

或者,更改multiplyBy()以使循环内的print语句如下所示:

public static void multiplyBy (int n)
{
    int sum = 0;
    for(int i = 0; i < numbers.length; i++){
       sum = n * numbers[i];
       System.out.println("The sum is: " + sum);
    }
}

并输出:

The sum is: 36
The sum is: 45
The sum is: 201
The sum is: 54
The sum is: 87
The sum is: 120
The sum is: 69
The sum is: 12
The sum is: 177
The sum is: 15