有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

  1. # 1 楼答案

    您过早地增加了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++;
        }
    
  2. # 2 楼答案

    此外,您还有3个while循环和两次将0分配给i