posts - 17,  comments - 14,  trackbacks - 0

          首先,寫出一個(gè)給數(shù)組排序的程序:

           public class Demo01 {

           public static void main(String[] args) {

            int[] arr={7,8,9,4,5,6,0,3,2,1};

            for (int i=0;i<arr.length;i++){

            for(int j=0;j < arr.length;j++){

            if(arr[j]<arr[j+1]){

          int temp=arr[j];

          arr[j]=arr[j+1];

          arr[j+1]=temp;

          }

          }

          }

          for(int i=0;i<arr.length;i++)

          System.out.print(arr[i]+" ");

          }

          }

          運(yùn)行這個(gè)程序的時(shí)候會彈出:

          Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9

          at com.dr.ONE.Demo01.main(Demo01.java:8)

          所謂下標(biāo)越界,就是程序在執(zhí)行過程中用到的數(shù)組下標(biāo)超出了所給出的數(shù)組本來的下標(biāo)。要排列的數(shù)組為arr={7,8,9,4,5,6,0,3,2,1},總共有10個(gè)數(shù)字,下標(biāo)依次為arr[0]arr[1]......arr[9]

          當(dāng)程序執(zhí)行到for(int j=0;j < arr.length;j++)時(shí),因?yàn)槭茄h(huán),所以只要j小于數(shù)組arr的長度10,就會執(zhí)行下面的if語句。當(dāng)j=9時(shí),程序仍然會執(zhí)行下面的語句,會讓arr[9]arr[9+1]也就是arr[10]比較大小,但是數(shù)組中總共就10個(gè)元素,下標(biāo)為0~9,這里卻出現(xiàn)了arr[10],下標(biāo)超出了0~9的范圍,所以報(bào)出 下標(biāo)越界 的錯(cuò)誤。

          當(dāng)程序執(zhí)行到arr[8]arr[8+1]比較之后就比較完了所有的元素,j就不能再增大了,也就是說j<9,數(shù)組的長度arr.length10,所以要把程序改為

          for (int j = 0; j < arr.length-1; j ++)

          也就是程序應(yīng)該為:

           public class Demo01 {

           public static void main(String[] args) {

            int[] arr={7,8,9,4,5,6,0,3,2,1};

            for (int i=0;i<arr.length;i++){

            for(int j=0;j < arr.length-1;j++){

            if(arr[j]<arr[j+1]){

          int temp=arr[j];

          arr[j]=arr[j+1];

          arr[j+1]=temp;

          }

          }

          }

          for(int i=0;i<arr.length;i++)

          System.out.print(arr[i]+" ");

          }

          }

          再執(zhí)行一遍程序,結(jié)果為:

          9 8 7 6 5 4 3 2 1 0 

          posted on 2010-10-09 08:39 Mineralwasser 閱讀(257) 評論(1)  編輯  收藏

          FeedBack:
          # re: 下標(biāo)越界
          2010-10-10 19:51 | 逆風(fēng)-飛
          寫的不錯(cuò)哦 好詳細(xì)  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          文章檔案(21)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 曲阜市| 谷城县| 博罗县| 托克托县| 都安| 长寿区| 东乌珠穆沁旗| 吉安市| 高清| 屯昌县| 叶城县| 化隆| 尚志市| 砀山县| 宁陵县| 普格县| 郧西县| 十堰市| 柘城县| 双桥区| 柳河县| 逊克县| 鲜城| 潼南县| 商都县| 柞水县| 修武县| 临漳县| 宜君县| 宁德市| 黄梅县| 迁西县| 滨州市| 石林| 福清市| 鹿邑县| 三江| 香港 | 无棣县| 台东县| 塔河县|