3 回答

TA貢獻1798條經驗 獲得超7個贊
如果您使用 2 個結果,則不需要額外的循環,然后在最后加入它們:
String res1, res2 = "";
for (int c = 0; c < test[0].length; c++) {
for (int r = 0; r < test.length; r++) {
if (c == r) {
res1 += test[r][c] + " ";
} else if (c + r == 4) {
res2 += test[r][c] + " ";
}
}
}
return res1 + res2;

TA貢獻1815條經驗 獲得超13個贊
您有兩個嵌套的 for 循環。他們將以列優先順序運行和迭代。如果你想以不同的順序迭代,那么你需要使用不同的循環。if 語句沒有任何問題。
for (int c = 0; c < test.length; c++) {
// Do it for (c, c)
}
for (int c = 0; c < test.length; c++) {
// Do it for (c, test.length - c - 1)
}
此外,作為切線音符,您4在一個地方和test.length其他地方都用作幻數。如果您總是希望數組是 5x5,那么使用5代替test.length并在開頭放置一個斷言。否則(更有可能),使用test.length - 1代替幻數4。
添加回答
舉報