[英]Can I simplify this for loop?
以下代碼段來自於生成5 x 5網格的JButton的系統。 我需要遍歷一個ArrayList
的JButtons
與行和列通過JButton
到ButtonListener
的構造。 當前在下面顯示代碼的方式有效,但是我想知道是否可以清理代碼或以任何方式重構。 我似乎有很多有關嘗試構建網格的說明。
int row = 1, col = 1;
for (JButton curButton : view.getButtons()) {
curButton.addActionListener(new ButtonListener(row, col));
row++;
if (row > 5) {
row = 1;
col++;
}
}
有什么辦法可以提高質量或簡化上面的代碼段?
int iterator = 0;
for (JButton curButton : view.getButtons()) {
curButton.addActionListener(new ButtonListener(iterator%5 + 1, iterator/5 + 1));
iterator++;
}
注意這里我使用整數除法,該除法總是四舍五入。 iterator/5 + 1
將映射{0,1,2,3,4,5,6,...}到{1,1,1,1,1,2,2 ...}
你不能有:
col = row = 5;
for (int i = 0; i < col; i++) {
for (int j = 0; j < row; j++) {
curButton.addActionListener(new ButtonListener(i, j));
}
}
可能必須使col和row 6或使i和j從另一個數字開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.