我试图显示一个随机数组,同时显示该数组的总和但我无法使其工作,我知道如何使用for循环但是我被指示做一个while循环相反,任何想法?
private void SumOfArray() {
myWindow.clearOut();
int total = 0;
int[] a = new int[4];
int i;
i = 0;
while (i < a.length) {
i++;
a[i] = 1 + (int) (Math.random() * 10);
}
i = 0;
while (i < a.length) {
i++;
myWindow.writeOutLine(a[i]);
}
while (i < a.length) {
total += a[i];
i++;
}
myWindow.writeOutLine(total);
}
答案 0 :(得分:6)
您过早地递增i
,导致ArrayIndexOutOfBoundsException
。在分配了一些a[i]
后,您应该增加它。
将其更改为
while (i < a.length) {
a[i] = 1 + (int) (Math.random() * 10);
i++;
}
现在循环的行为类似于for循环 - 即i
在循环体的所有其他语句之后递增。
您的其他循环也应该被修复,事实上,所有循环都可以合并为一个循环:
int i = 0;
while (i < a.length) {
a[i] = 1 + (int) (Math.random() * 10);
myWindow.writeOutLine(a[i]);
total += a[i];
i++;
}
答案 1 :(得分:1)
此外,您有3个while循环,有两次将0
分配给i
....