2017-10-19 120 views
-2

我想從書中瞭解這段代碼。使用嵌套循環創建二維數組

int[][] grade = { 
    { 1, 0, 1 }, 
    { 0, 1, 0 }, 
    { 1, 0, 1 } 
}; 
for (int i = 0; i < 3; i++) { 
    for (int j = 0; j < 3; j++) { 
    if (i == j) 
     System.out.print(grade[i][j] + grade[j][i] + " "); 
    else 
     System.out.print(grade[i][j] * grade[j][i] + " "); 
    } 
    System.out.println(" "); 
} 

我明白一個二維數組是行和列的邏輯。我只是不明白答案是怎麼來的。

2 0 1 
0 2 0 
1 0 2 
+0

什麼是它你不明白嗎?應該清楚,輸入爲0和1,操作數爲+和*時,只能得到輸出0,1和2。 –

回答

0

它循環遍歷2維數組。 如果i等於j,例如(0,0 1,1 2,2),那麼它將等級[i] [j]與等級[j] [i]相加。由於我和j是平等的,所以它自己增加了位置。

當我不等於j時,它將grade [i] [j]與grade [j] [i]相乘。

由於它們不相等,它會在網格中乘以2個不同的位置。 例如

等級[3] [1]乘以等級[1] [3],而不是自身。

如果更改級[1] [3] 2,則所有角將被輸出爲2

輸入:

1 0 2 
0 1 0 
1 0 1 

將輸出:

2 0 2 
0 2 0 
2 0 2 
-1

它基本上是循環遍歷二維數組,如果它看到列和行號(i和j)是相同的,它將自己添加它。即對角線乘以2。而對於其餘的條目,它將與自身相乘。