作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须循环遍历二维数组,创建并存储随机问题,并测试用户的响应。但是,我不知道如何正确引用这些元素。我习惯了 (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/
我是一名优秀的程序员,十分优秀!