我一直在嘗試for對數(shù)組進行嘗試,并嘗試使用數(shù)組迭代。為什么這兩個代碼沒有做完全相同的事情?第一個完美地工作,第二個是我嘗試使其看起來更干凈。/** * resetSelectionOn * * Module permettant de reinitiliser la selection d'une case et de supprimer * le groupe dont elle fait partie * * @param emplacement */public void resetSelectionOn(int emplacement) { int group = groupID[emplacement]; for (int i = 0; i < groupID.length; i++) { if (groupID[i] == group) { groupID[i] = 99; selected[i] = false; } } for(int i = 0; i < groupID.length; i++) { if (groupID[i] > group) { groupID[i]--; } } **// This is the one that isn't working and is suppose to do the exact same thing as the one right over** for ( int i : groupID) { if(i > group) i--; }*/ listeGroupCree.remove(group); selected[emplacement] = false; nbGroupCree--;}有人可以向我解釋這兩個代碼之間的區(qū)別嗎?謝謝!group是一個選項卡,其中包含數(shù)字所在的組的編號。示例:我隨機生成了6位數(shù)字。假設[1] [2] [3] [4] [5] [6] groupID是一個ArrayList,告訴我在巫婆組中此數(shù)字已被使用。例如,如果2和3通過成為同一組的一部分來創(chuàng)建數(shù)字23(假設2),則此代碼是我的代碼,用于重置該組的選擇。該組引用了它在ListeGroupCree中的位置。如果23是組號2,則ListeGroupCree [2]將返回23
3 回答

臨摹微笑
TA貢獻1982條經(jīng)驗 獲得超2個贊
for (int i: array) { i++; }
在上面的示例中,i
是數(shù)組中值之一的本地副本。僅對單次迭代有效。您實質(zhì)上是在更改副本的值。

瀟瀟雨雨
TA貢獻1833條經(jīng)驗 獲得超4個贊
比較兩個片段:
for (int i = 0; i < groups.length; i++) {
groups[i]--;
}
和
for (int g : groups) {
g--;
}
第一部分將減少的每個元素groups。第二段將什么也不做。這是因為第二段等于
for (int i = 0; i < groups.length; i++) {
int g = groups[i];
g--;
}
因此,您將獲得一個新變量,將其遞減并丟棄結果。
添加回答
舉報
0/150
提交
取消