我有一个带有返回数组值之和的方法的代码示例。但不是总和,我得到0。
这是我的代码示例
.Renviron
任何人都可以告诉我什么;我的代码错了吗?
答案 0 :(得分:1)
循环根本不运行 - 条件data[0] < size
为false
,因此返回answer = 0
的初始值。
要使其有效,请将语句更改为(int i = 0; i < size; i++)
。此外,size
可能会被data.length
替换。
答案 1 :(得分:1)
这是您的代码,稍作修正。试试吧。
class Calculation {
public int SumOfArrays(int data[]) {
int answer = 0; // this is just better
for (int i = 0; i < data.length; i++) {
answer += data[i];
}
return answer;
}
class Main {
public static void main(String[] args) {
Calculation cal = new Calculation();
int data[]={10,20};
System.out.println(cal.SumOfArrays(data));
}
}
答案 2 :(得分:1)
for循环的计数器i
未正确初始化。您已将其初始化为数组中第一个元素的值而不是0.将其初始化为0,如下所示:
for (int i = 0; i < size; i++) {
answer += data[i];
//System.out.println(data[i]);
}
答案 3 :(得分:0)
正如您从循环中看到的那样
for(int i = data[0]; i < size; i++)
变量i
等于data array
中的第一个元素,这意味着它大于size
变量。所以循环根本不会开始
解决问题的方法是将循环改为此
for (int i = 0; i < size; i++) {
answer += data[i];
//System.out.println(data[i]);
}