我正在试图弄清楚嵌套for循环初始化变量是如何工作的。我在这里看了另一个问题,在2D数组中初始化值从1到15,这似乎是合理的使用代码:
for (int i = 0; i < row.length; i++) {
for (int j = 0; j < row[0].length; j++) {
row[i][j] = (i * row[0].length) + j;
}
}
我正在尝试扩展这个想法,以便另一个数组具有如下模式:
{0, 9,18,27,36,45,54,63,72} //row0...row8
{ 1,10,19,28,37,46,55,64,73}
很明显,一旦一行完成,一个数字会增加1,你继续加9,直到你到达行的末尾。这在代码中如何表示?该问题的解决方案将是很好的,但如果可能的话,将更多地理解更一般的方法。 我的猜测是for循环语句的标题不会改变,而是它的赋值方程式。
答案 0 :(得分:1)
这会有用吗?
for(int i=0; i < 9; i++){
for(int j=0; j < 9; j++){
row[i][j] = j+i;
}
}
答案 1 :(得分:1)
for (int i = 0; i < row.length; i++) {
for (int j = 0; j < row[j].length; j++) {
row[i][j] = i + j * 9;
}
}
答案 2 :(得分:1)
尝试使用以下代码:
int[][] row = new int[9][9];
for (int i = 0; i < row.length; i++) {
row[i][0] = i;
for (int j = 1; j < row[i].length; j++) {
row[i][j] = row[i][j - 1] + 9;
}
}
/*
* Print 2d-array
*/
for (int i = 0; i < row.length; i++) {
for (int j = 0; j < row[i].length; j++) {
System.out.printf("%2d ", row[i][j]);
}
System.out.println();
}
控制台输出:
0 9 18 27 36 45 54 63 72
1 10 19 28 37 46 55 64 73
2 11 20 29 38 47 56 65 74
3 12 21 30 39 48 57 66 75
4 13 22 31 40 49 58 67 76
5 14 23 32 41 50 59 68 77
6 15 24 33 42 51 60 69 78
7 16 25 34 43 52 61 70 79
8 17 26 35 44 53 62 71 80