我一直在尝试for对数组进行尝试,并尝试使用数组迭代。为什么这两个代码没有做完全相同的事情?第一个完美地工作,第二个是我尝试使其看起来更干净。/** * 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--;}有人可以向我解释这两个代码之间的区别吗?谢谢!group是一个选项卡,其中包含数字所在的组的编号。示例:我随机生成了6位数字。假设[1] [2] [3] [4] [5] [6] groupID是一个ArrayList,告诉我在巫婆组中此数字已被使用。例如,如果2和3通过成为同一组的一部分来创建数字23(假设2),则此代码是我的代码,用于重置该组的选择。该组引用了它在ListeGroupCree中的位置。如果23是组号2,则ListeGroupCree [2]将返回23
3 回答
潇潇雨雨
TA贡献1833条经验 获得超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
提交
取消