我在下面写了这段代码,它应该返回一个数组的总和。但它一直返回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;
}
}
答案 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];
}