gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:01:19 26 4
gpt4 key购买 nike

我必须循环遍历二维数组,创建并存储随机问题,并测试用户的响应。但是,我不知道如何正确引用这些元素。我习惯了 (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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com