好的,我曾尝试在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但我无法弄明白的代码,任何人都知道如何做到了吗?
答案 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
数组的每个元素;那么你只需要返回这个值。