假设你有newTable[5][6]
一个二维数组
int[][] newTable = {{1, 2, 3, 4, 5},
{6, 7, 8, 9, 8},
{7, 6, 5, 4, 3},
{2, 1, 2, 3, 4},
{5, 6, 7, 8, 9},
{8, 7, 6, 5, 4}};
当你遍历它们时,
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
}
}
5
外循环中的 in 导致循环运行 5 次。对于这些迭代中的每一个,除了运行6
时间之外,还有另一个循环,总共为5 * 6
times (30)
。
i
j
如果您想在循环中使用索引,i
并表示j
索引。
// 例如 newTable[i][j] = 1; // i 和 j 是第一次迭代,所以 i = 0 和 j = 0
如果你看我上面的矩阵,你会看到左上角,你会看到 value 1
。i
innewTable[i][j] = 1;
代表"rows"
和j
代表"column"
。 _ rows
在这种情况下,实际上下去并columns
穿过。
所以如果你说
inx x = newTable[3][4];
x
将相等4
,因为您3
向下(从 0 开始)并4
越过(从 0 开始)
让我们回到循环。我可能不会回答你的问题,但我想给你一些见解。
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
// say you have another table "table"
table[i][j] = newTable[i][j]
}
}
以上所做的就是使table[i][j] = newTable[i][j]
. 如果你想交换它们,你可以做这样的事情
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
int temp = newTable[i][j];
table[i][j] = newTable[i][j];
newTable[i][j] = table[i][j];
}
}
就像,我说过,我可能不会回答你的问题。但我想指出的一件事是,你要玩弄索引,你很有可能会收到一条错误消息,称为Excpetion
. 有很多不同的种类Exceptions
。如果您在循环中使用索引,则很有可能获得 and ArrayIndexOutOfBoudsException
。它正是它的样子。这意味着,您正在尝试访问index
超出[5][6]
范围的内容。
例如,如果在你的循环中你有这样的东西
newTable[i + 1][j] = table[i][j];
并且循环在它的最后一次迭代中,即不存在的 ArrayIndexOutOfBoundsExeption newTable[5][5] i = 4
` j = 5', you would get an
。because you're trying access
至于你关于这个的问题
newTable.setLetter(0,5,Table[0][2]);
我不知道该怎么做,没有看到更多的代码。但是你的逻辑听起来是对的,如果它.setLetter()
是正确实现的,如果 asetLetter()
甚至存在的话。