我用的是一個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 閱讀(2637) 評論(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;
            }
            }
            }
            }  回復  更多評論   
           
          主站蜘蛛池模板: 丰都县| 潮州市| 当涂县| 汉寿县| 冀州市| 丹寨县| 玉林市| 洪泽县| 龙川县| 保亭| 象州县| 繁昌县| 富平县| 荃湾区| 霸州市| 报价| 昌江| 宜良县| 桓仁| 石嘴山市| 佳木斯市| 漾濞| 合作市| 都江堰市| 鄯善县| 师宗县| 福建省| 平凉市| 德兴市| 思茅市| 峡江县| 民勤县| 化德县| 罗甸县| 甘肃省| 鄂伦春自治旗| 文水县| 缙云县| 广南县| 云林县| 乌拉特前旗|