for循环的执行方式
最近在学马士兵的javase小项目坦克大战。
有个地方想了好久没想清楚,请大神指点下,谢谢。代码如下:
List<Missile> missiles = new ArrayList<Missile>();
//画坦克和子弹
public void paint(Graphics g){
g.drawString("已发射子弹的总数是:"+missiles.size(),60, 45);
for(int i=0;i<missiles.size();i++){
mis=missiles.get(i);
if(mis != null){
mis.drawMissile(g);
}
}
}
疑问点:假如一个坦克,一次打了三发子弹,那么List中存放了三个子弹,当画完这三个子弹后,再打一颗新的子弹,那么List中就有四颗子弹了,如果是再执行for循环,那么就要新增加四颗子弹(把前面的三颗子弹又新增了一遍),但是实际上运行的时候,只会新打出一颗子弹。为什么不是再打出四颗子弹呢?此时missiles.size()=4啊。是不是我对for循环的执行方式理解不对呢?