posts - 17,  comments - 14,  trackbacks - 0

          首先,寫出一個給數組排序的程序:

           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]+" ");

          }

          }

          運行這個程序的時候會彈出:

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

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

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

          當程序執行到for(int j=0;j < arr.length;j++)時,因為是循環,所以只要j小于數組arr的長度10,就會執行下面的if語句。當j=9時,程序仍然會執行下面的語句,會讓arr[9]arr[9+1]也就是arr[10]比較大小,但是數組中總共就10個元素,下標為0~9,這里卻出現了arr[10],下標超出了0~9的范圍,所以報出 下標越界 的錯誤。

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

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

          也就是程序應該為:

           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]+" ");

          }

          }

          再執行一遍程序,結果為:

          9 8 7 6 5 4 3 2 1 0 

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

          FeedBack:
          # re: 下標越界
          2010-10-10 19:51 | 逆風-飛
          寫的不錯哦 好詳細  回復  更多評論
            

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


          網站導航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          文章檔案(21)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 晋宁县| 嘉荫县| 嘉义县| 襄樊市| 鹤峰县| 临安市| 三穗县| 鄂托克前旗| 监利县| 扎赉特旗| 新乡市| 碌曲县| 青河县| 南召县| 宁远县| 阳东县| 郁南县| 东源县| 双牌县| 孟津县| 乌拉特前旗| 延寿县| 司法| 大足县| 方正县| 专栏| 淮阳县| 黑龙江省| 永吉县| 华蓥市| 壶关县| 原平市| 鹤庆县| 兴和县| 成武县| 岑巩县| 博野县| 洪洞县| 樟树市| 醴陵市| 崇州市|