将 4 个 for 循环变成一个
Turning 4 for-loops into one
我想知道我是否可以获得一些帮助或提示来使这个 for 循环更复杂。我试图将它们合二为一,而不是拥有 3 个不同的循环。我似乎无法修复它,我已经尝试用谷歌搜索并自行修复它。如果您能看一下,我将不胜感激。
//菜鸟程序员
for(int i = 0; i < 4; i++)
row[1].add(button[i]);
row[1].add(button[14]);
add(row[1]);
for(int i = 4; i < 8; i++)
row[2].add(button[i]);
row[2].add(button[15]);
add(row[2]);
for(int i = 8; i < 12; i++)
row[3].add(button[i]);
row[3].add(button[16]);
add(row[3]);
row[4].add(button[18]);
for(int i = 12; i < 14; i++)
row[4].add(button[i]);
row[4].add(button[17]);
add(row[4]);
类似于:
for (int r = 0; r < 4; r++) {
for (int i = 4 * r; i < 4 * r + 4; i++)
row[r + 1].add(button[i]);
row[r + 1].add(button[r + 14]);
add(row[r + 1]);
}
显然这个不见了 row[4].add(button[18]);
但无论如何看起来都是假的。
假设顺序确实很重要,我认为您至少需要两个循环;像,
row[4].add(button[18]);
for (int i = 0; i < 14; i++) {
int ndx = 1 + (i / 4);
row[ndx].add(button[i]);
}
for (int i = 1; i < 5; i++) {
row[i].add(button[13 + i]);
add(row[i]);
}
应该是等效的(所有按钮以相同的顺序添加到一行并且添加了所有行)。
我想知道我是否可以获得一些帮助或提示来使这个 for 循环更复杂。我试图将它们合二为一,而不是拥有 3 个不同的循环。我似乎无法修复它,我已经尝试用谷歌搜索并自行修复它。如果您能看一下,我将不胜感激。
//菜鸟程序员
for(int i = 0; i < 4; i++)
row[1].add(button[i]);
row[1].add(button[14]);
add(row[1]);
for(int i = 4; i < 8; i++)
row[2].add(button[i]);
row[2].add(button[15]);
add(row[2]);
for(int i = 8; i < 12; i++)
row[3].add(button[i]);
row[3].add(button[16]);
add(row[3]);
row[4].add(button[18]);
for(int i = 12; i < 14; i++)
row[4].add(button[i]);
row[4].add(button[17]);
add(row[4]);
类似于:
for (int r = 0; r < 4; r++) {
for (int i = 4 * r; i < 4 * r + 4; i++)
row[r + 1].add(button[i]);
row[r + 1].add(button[r + 14]);
add(row[r + 1]);
}
显然这个不见了 row[4].add(button[18]);
但无论如何看起来都是假的。
假设顺序确实很重要,我认为您至少需要两个循环;像,
row[4].add(button[18]);
for (int i = 0; i < 14; i++) {
int ndx = 1 + (i / 4);
row[ndx].add(button[i]);
}
for (int i = 1; i < 5; i++) {
row[i].add(button[13 + i]);
add(row[i]);
}
应该是等效的(所有按钮以相同的顺序添加到一行并且添加了所有行)。