java在for循环中,增量整数不会增加2
这是我的密码
for (int i = 0; i<shots.size(); i=i+2){ //I would expect "i" to increase by 2 for every loop.
i = i%4; //On this line, there is ALWAYS that i==2
switch (i){
case 0: boards[1].getTile(shots.get(i),shots.get(i+1)).shoot();
break;
case 2: boards[0].getTile(shots.get(i),shots.get(i+1)).shoot();
break;
}
if (gameOver()){
break;
}
}
但是,当我运行调试器时,每次我点击循环初始值设定项时,我都会看到“I”被重置为0,然后循环中第一行的“I”被设置为“2”。我希望它的行为像一个常规的for循环,只是我希望每次迭代“I”增加2而不是1。我有办法做到吗
谢谢你的帮助
# 1 楼答案
我怀疑这是你的问题
让我们看看
i
的作用:因此,除非
shots.size()
小于2,否则你将永远循环,除非gameOver()
变为真,你将打破循环。你可以按照@Eran的建议去做 并创建一个新的intj
作为i
的mod,或者(因为您没有在其他任何地方使用j
),只需执行以下操作:# 2 楼答案
我认为你需要两个变量:
要使其工作,
shots.size()
必须是偶数。如果是奇数shots.get(i+1)
最终将抛出异常