所以我只是想看看我的数组中的元素是否可以被总和整除,我认为我的for循环总结了数组的元素有什么问题,关于我应该如何进行的任何提示?
public static void main(String[] args) {
int apa[] = {3,3,3};
System.out.print(allEqual(apa));
}
public static boolean allEqual(int[] a) {
int summa = 0;
boolean svar = true;
for (int i = 0; i <= a.length; i++) {
summa +=a[i];
}
if (summa % a.length == 0) {
return svar;
} else {
svar = false;
return svar;
}
}
Run Code Online (Sandbox Code Playgroud)
Java中的数组索引从0直到不等length - 1,因此对于长度数组3,最大索引是2.for在你到达之前停止你的循环length,否则你将在阵列结束时运行a[3],你会得到ArrayIndexOutOfBoundsException你观察到的.更改
for (int i = 0; i <= a.length; i++) {
Run Code Online (Sandbox Code Playgroud)
至
for (int i = 0; i < a.length; i++) {
Run Code Online (Sandbox Code Playgroud)
你有:
for (int i = 0; i <= a.length; i++)
Run Code Online (Sandbox Code Playgroud)
你可能意味着:
for (int i = 0; i < a.length; i++)
Run Code Online (Sandbox Code Playgroud)
因为访问a[a.length]总是会导致ArrayIndexOutOfBoundsException(有效索引范围是[0,a.length-1]).
如果你实际上不需要在循环中对索引本身做任何事情,你也可以使用这种语法来消除这种错误的可能性:
for (int value : a)
summa += value;
Run Code Online (Sandbox Code Playgroud)
当然,所有这一切都假定a != null.
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |