我用的是一個Vector的實例。把一個Result的數據放入其中。用一個for(int i = 0; i <=  Vector.size(); i++)
          我還在前面寫了一句int a = Vector.size(). a 的值取出來是等于2??墒窃谘h中就出錯了。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;
            }
            }
            }
            }  回復  更多評論   
           
          主站蜘蛛池模板: 历史| 平定县| 柳州市| 西贡区| 玉树县| 彭州市| 宿迁市| 错那县| 云梦县| 巴中市| 平顺县| 酒泉市| 宁夏| 正阳县| 德昌县| 康马县| 得荣县| 琼结县| 榆林市| 建水县| 谷城县| 衡东县| 金门县| 泽库县| 瑞丽市| 南昌县| 塘沽区| 淮阳县| 鄂尔多斯市| 屏南县| 名山县| 焦作市| 乌兰县| 商都县| 平邑县| 三台县| 巴彦淖尔市| 中牟县| 洪泽县| 内乡县| 肃南|