隨筆 - 3  文章 - 11  trackbacks - 0
          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          public class trigon2{
          ?? public static void main(String[] args){
          ????? int[][] triarray=new int[10][];
          ????? for(int i=0;i<triarray.length;i++){
          ???????? triarray[i]=new int[++i];
          ????? }
          ????? int k=0;
          ????? for(int i=0;i<triarray.length;i++){
          ???????? for(int j=0;j<triarray[i].length;j++){
          ??????????? j=0;
          ??????????? triarray[i][j]=++k;
          ??????????? System.out.println(triarray[i][j]);
          ???????? }
          ????? }
          ?? }
          }
          //運(yùn)行后,拋出異常:

          //Exception in thread "main" java.lang.NullPointerException
          //??????? at trigon2.main(trigon2.java:9)
          posted on 2007-02-24 22:34 JIM.WU 閱讀(452) 評(píng)論(5)  編輯  收藏

          FeedBack:
          # re: 為什么這段程序編譯成功,但運(yùn)行拋出異常? 2007-02-24 23:20 喜來樂哈哈
          如果我沒猜錯(cuò)的話,你想做的是

          public class trigon2{
          public static void main(String[] args){
          int[][] triarray=new int[10][];
          for(int i=0;i<triarray.length;i++){
          triarray[i]=new int[++i];
          .....

          把這里triarray[i]=new int[++i];改成triarray[i]=new int[i+1];


          但是這是個(gè)無限循環(huán),因?yàn)?br>for(int i=0;i<triarray.length;i++){
          for(int j=0;j<triarray[i].length;j++){
          j=0;
          triarray[i][j]=++k;
          System.out.println(triarray[i][j]);
          }
          }
          在內(nèi)循環(huán)你每次又把j=0, j<triarray[i].length當(dāng)然一直是true了。

          至于你看到的
          //Exception in thread "main" java.lang.NullPointerException
          // at trigon2.main(trigon2.java:9)
          異常,是因?yàn)樵诘谝粋€(gè)for循環(huán)里,你只初始化了triarray[0],triarray[2],...
          triarray[1],triarray[3]都還沒有被初始化,當(dāng)然會(huì)有NullPointerException。



            回復(fù)  更多評(píng)論
            
          # re: 為什么這段程序編譯成功,但運(yùn)行拋出異常? 2007-02-24 23:51 JIM.WU
          @喜來樂哈哈
          呵呵。。。。謝謝啦,不過JDK6.0是默認(rèn)初始化的吧,我試了將++i,改為i+1問題解決,不過是一個(gè)無限循環(huán)的結(jié)果。我本來想要下面的結(jié)果,在C里面做很容易,在JAVA里面不知道怎么弄。
          1
          2 3
          4 5 6
          7 8 9 10
          11 12 13 14 15
          ...........................  回復(fù)  更多評(píng)論
            
          # re: 為什么這段程序編譯成功,但運(yùn)行拋出異常? 2007-02-25 00:02 喜來樂哈哈
          默認(rèn)初始化也只能初始化為null。

          用下面的代碼就行了,我想不會(huì)比C要復(fù)雜。

          public static void main(String[] args) {
          int[][] triarray = new int[10][];
          for (int i = 0; i < triarray.length; i++) {
          triarray[i] = new int[i + 1];
          }
          for (int i = 0, k = 1; i < triarray.length; i++) {
          for (int j = 0; j < triarray[i].length; j++) {
          triarray[i][j] = k++;
          }
          }
          for (int i = 0; i < triarray.length; i++) {
          for (int j = 0; j < triarray[i].length; j++) {
          System.out.printf("%2d ", triarray[i][j]);
          }
          System.out.println();
          }
          }  回復(fù)  更多評(píng)論
            
          # re: 為什么這段程序編譯成功,但運(yùn)行拋出異常? 2007-02-25 00:15 JIM.WU
          @喜來樂哈哈
          呵呵。。。。謝謝!!
          那么下面的程序問題又在哪里呢??
          public class trigon{
          public static void main(String[] args){
          int[][] triarray=new int[10][];
          int i=0,j=0;
          for(int[] triarray2:triarray){
          triarray2=new int[++i];
          }

          for(int[] triarray2:triarray){
          for(int tri:triarray2){
          triarray2[j++]=j+1;
          System.out.println(triarray2+"");
          }
          System.out.println("");
          }
          }
          }  回復(fù)  更多評(píng)論
            
          # re: 為什么這段程序編譯成功,但運(yùn)行拋出異常? 2007-02-25 00:38 喜來樂哈哈
          運(yùn)行這個(gè)你就知道了

          public static void main(String[] args) {
          int[][] triarray = new int[10][];
          int i = 0, j = 0;
          for (int[] triarray2 : triarray) {
          triarray2 = new int[++i];
          }

          for (int[] triarray2 : triarray) {
          System.out.println(triarray2);
          }
          }

            回復(fù)  更多評(píng)論
            

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 万盛区| 鲁甸县| 白河县| 馆陶县| 南平市| 长岛县| 云安县| 广东省| 平果县| 平利县| 永州市| 义乌市| 扎鲁特旗| 滨海县| 桦南县| 集贤县| 顺义区| 安岳县| 郓城县| 青河县| 舞阳县| 张家川| 东明县| 仁布县| 上犹县| 谢通门县| 北宁市| 新乡县| 光山县| 阳江市| 合水县| 彩票| 商都县| 枣阳市| 田东县| 青田县| 阿巴嘎旗| 云林县| 左贡县| 监利县| 张北县|