Java 循环遍历 2D 数组 - 作业

标签 java arrays 2d

我必须循环遍历二维数组,创建并存储随机问题,并测试用户的响应。但是,我不知道如何正确引用这些元素。我习惯了 (counter; counter < x; counter++) 的旧语法。

如何使用此语法引用特定数组元素?这让我很困惑。我需要引用该行中的第五个元素,以查看用户输入的内容以打破循环,并循环遍历并将一维数组转置到二维数组的当前行中。

    for(int arrRow[] : arr)                 //arr is a [100][5] array
    {
        switch(rNum.nextInt(4))             //Creates a random number between 0 and 3 and passes it to a switch statement
        {
            case 0:                         //Generates an Addition question
                arr2 = a.quiz();
                break;
            case 1:                         //Generates a Subtraction question
                arr2 = s.quiz();
                break;
            case 2:                         //Generates a Multiplication question
                arr2 = m.quiz();
                break;
            case 3:                         //Generates a Division question
                arr2 = d.quiz();
        }

        //for (colNum=0; colNum<5;colNum++) //loops through the column in the 2D array and pulls data from returned array
        for(int arrCol : arrRow)
        {
            arrCol = arr2[arrCol];
        }

        if(arrRow[4] == -1)                 //If user enters a -1, breaks from the for loop
        {
            break;
        }
    }
    newTest.printQuestionResult();          //Calls the print function after the user is done or the test is complete
}

最佳答案

您的arrCol是一个int,它是一个原始类型变量,因此该变量是从arrRow复制的值。如果您向 arrCol 分配任何值,则该值不会反射(reflect)在 arrRow 中。

你应该这样做:

for (int index = 0; index < arrRow.length; i++)
{
    int col = arrRow[index];
    arrRow[index] = arr2[col];
}

我不确定arr2包含什么,所以我不能确定当你像这样读取它的元素时是否会遇到ArrayIndexOutOfBoundsException

我猜您需要 arr2[index] 而不是 arr2[col]

关于Java 循环遍历 2D 数组 - 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52750877/

相关文章:

arrays - 二维数组中元素之间的距离

c++ - 将数组/指针作为模板参数传递

C 初学者 - 数组和指针

c - 执行 Alpha 混合的正确方法是什么? (C)

java - 之间的区别? Java中的(通配符)和类型参数

php - 比 in_array 快?

javascript - 在javascript中将数组转换为二维数组(方阵)

java - 从Java中的对象获取强类型属性值

java - 我可以将 selectOneMenu 表示的对象添加到 JSF 中 bean 的集合中吗?

java - 在java中使用变量设置对象数组