查找并打印阵列中所有条目的产品

时间:2014-05-01 10:33:33

标签: java

好的,我曾尝试在BlueJ中编写一个简单的Java代码,查找并打印数据中所有条目的乘积,例如,如果数据为{1,2,3,4},则结果为24。 / p>

我的代码如下:

public class Product {
    public static int[] product(int[] a) {
         int [] s = new int[a.length];
        for (int i =0; i< a.length; i++)
            s[i] = a[i]*a[i];
        return s; //the definition of your method...
    }

    public static void main(String[] args) {
        //calling the method to seek if compiles
        int[] results = Product.product(new int[] { 1,2,3,4 });
        //printing the results
        System.out.println(java.util.Arrays.toString(results));
    }
}

上面的代码给了我每个数字的平方,这不是我想要的,不知何故我修改了结果将是24但我无法弄明白的代码,任何人都知道如何做到了吗?

2 个答案:

答案 0 :(得分:2)

首先,如果您是第一次编写Java,重要的是要知道变量,函数和类名非常重要。请注意,Product.product()不是一个好主意,因为函数名称几乎与类名相同。无论如何,关于你的代码。您的代码确实返回了输入的平方,您想要的是以下内容:

public class Product {
    public static int getProduct(int[] input) {
        int total = 1;
        for (int v : input) {
            total *= v;
        }
        return total;
    }
}

这将返回一个带输入数组乘积的整数值。为了便于阅读,这也使用for-each循环而不是常规for循环。在这种情况下,您也不需要索引。祝你好运!

答案 1 :(得分:1)

首先,您的product方法需要返回int而不是int []

您需要将产品维护为变量。您最初可以将其设置为1,然后依次将其乘以a数组的每个元素;那么你只需要返回这个值。