2014-05-22 111 views
1

我想創建一個二維數組。 我能夠編譯,但無法運行爲什麼我的程序在編譯時沒有輸出?

public class Arraytest1 { 

    public static void main(String[] args) { 
     int i, j, k = 0; 
     int test[][] = new int[4][5]; 
     for (i = 0; i < 4; i++) { 
      for (j = 0; j < 5; j++) { 
       test[i][j] = k; 
       k++; 
      } 
     } 
     for (i = 0; i < 4; i++) { 
      for (j = 0; j < 5; k++) 
       System.out.print(test[i][j] + " "); 

      System.out.println();  
     } 
    } 

} 
+0

你是如何運行它的? –

+0

你混合'j'和'k',因此有一個無限循環 – Syjin

+0

是的,我發現stil我進入無限循環 –

回答

7

你有一個無限循環:for(j=0;j<5;k++),你必須寫for(j=0;j<5;j++)

你增加的k代替j

+2

斑點... – Alnitak

+0

@Downvoter:請解釋原因! – Jens

0

你有無限循環。您遞增k而不是j

for(j=0;j<5;k++) 

你應該兩次將其更改爲

for(j=0;j<5;j++) 
+0

是的,你是對的,我錯誤地把它。 –

0

這裏...這應該工作。只要改變你的子循環使得它j++,而不是k++頂部和底部

public static void main(String[] args) { 
     int i, j, k = 0; 
     int test[][] = new int[4][5]; 
     for (i = 0; i < 4; i++) { 
      for (j = 0; j < 5; j++) { 
       test[i][j] = k; 
       k++; 
      } 
     } 
     for (i = 0; i < 4; i++) { 
      for (j = 0; j < 5; j++) 
       System.out.print(test[i][j] + " "); 
      System.out.println(); 
     } 
    } 
-1
public class Arraytest1 { 

    public static void main(String[] args) { 
     int i, j, k = 0; 
     int test[][] = new int[4][5]; 
     for (i = 0; i < 4; i++) { 
      for (j = 0; j < 5; j++) { 
       test[i][j] = k; 
       k++; 
      } 
     } 
     for (i = 0; i < 4; i++) { 
      for (j = 0; j < 5; j++) { 
       System.out.print(test[i][j] + " "); 
       System.out.println(); 
      } 
     } 
    } 

} 

就可以解決這個問題

+3

不要只是發佈代碼。解釋一下。你的代碼和他們的代碼有什麼區別? –

+0

此外,你的代碼在哪裏是false(一個'{'在哪裏丟失) – Gwenc37

0

我想你已經在第二混了第k和j變量for-loop「塊」。當我改變它:

... 
    for (i = 0; i < 4; i++) { 
     for (j = 0; j < 5; j++) 
     System.out.print(test[i][j] + " "); 

     System.out.println();  
    } 
    ... 

我得到以下打印到我的控制檯:

0 1 2 3 4 
5 6 7 8 9 
10 11 12 13 14 
15 16 17 18 19 

它是你想要的嗎?

相關問題