我用的是一个Vector的实例。把一个Result的数据放入其中。用一个for(int i = 0; i <=  Vector.size(); i++)
我还在前面写了一句int a = Vector.size(). a 的值取出来是等于2。可是在循环中就出错了。Vector的下标是从0开始的。我后来把for循环中的i<= Vector.size()的<= 改成了 i < Vector.size()就可以了。
posted on 2005-08-26 10:27 rodney 阅读(2621) 评论(2)  编辑  收藏 所属分类: 工作中遇到的问题与解决方式
Comments
  • # re: 数组下标越界
    武国栋
    Posted @ 2009-06-03 14:14
    把"i<= Vector.size()的<= 改成了 i < Vector.size()就可以"的原因是:
    当i=2时,2<=vector.size()成立,则会继续执行循环体;而此时i=2的意思是索引为2的数组下标-->代表数组的第三个元素 但是数组中就两个元素,取不到第三个,所以就会报下标越界的问题 希望这样解释对你有用。。。  回复  更多评论   
  • # re: 数组下标越界[未登录]
    soul
    Posted @ 2013-11-14 15:20
    for(int i = 0;i < bulleth.size();i++){
    for(int j = 0;j < enemry.size();j++){
    //如果第i颗子弹与第j架敌机在x轴方向的距离小于敌机的宽度
    if((int)(Math.abs(bulleth.get(i).getX() - enemry.get(j).getX())) < enemry.get(j).getWidth()){
    //如果第i颗子弹与第j架敌机在y轴上的距离小于敌机的高度
    if((int)(Math.abs(bulleth.get(i).getY() - enemry.get(j).getY())) < enemry.get(j).getHeight()){
    bulleth.get(i).setIsDeath(true);
    enemry.get(j).setIsDeath(true);
    break;
    }
    }
    }
    }  回复  更多评论   

只有注册用户登录后才能发表评论。


网站导航: