为什么我的while循环不能用于计算数组的总和并显示数组

时间:2016-04-19 13:16:34

标签: java arrays sum

我试图显示一个随机数组,同时显示该数组的总和但我无法使其工作,我知道如何使用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);

    }

2 个答案:

答案 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 ....