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

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          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]);
          ???????? }
          ????? }
          ?? }
          }
          //運行后,拋出異常:

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

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

          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];


          但是這是個無限循環,因為
          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]);
          }
          }
          在內循環你每次又把j=0, j<triarray[i].length當然一直是true了。

          至于你看到的
          //Exception in thread "main" java.lang.NullPointerException
          // at trigon2.main(trigon2.java:9)
          異常,是因為在第一個for循環里,你只初始化了triarray[0],triarray[2],...
          triarray[1],triarray[3]都還沒有被初始化,當然會有NullPointerException。



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

          用下面的代碼就行了,我想不會比C要復雜。

          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();
          }
          }  回復  更多評論
            
          # re: 為什么這段程序編譯成功,但運行拋出異常? 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("");
          }
          }
          }  回復  更多評論
            
          # re: 為什么這段程序編譯成功,但運行拋出異常? 2007-02-25 00:38 喜來樂哈哈
          運行這個你就知道了

          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);
          }
          }

            回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 昭通市| 太保市| 小金县| 宁阳县| 白银市| 铜鼓县| 资源县| 南涧| 玉树县| 丹寨县| 水城县| 高青县| 长阳| 道孚县| 清水河县| 呼玛县| 丽江市| 福州市| 永宁县| 盘山县| 垫江县| 巴里| 五华县| 闸北区| 炎陵县| 道孚县| 山丹县| 丘北县| 旬邑县| 西乡县| 延川县| 渝北区| 武鸣县| 洪湖市| 洪雅县| 明水县| 大名县| 南华县| 讷河市| 新巴尔虎右旗| 玉林市|