iT邦幫忙

0

java for+陣列

public class Non_R_Array1 {
public static void main(String[] args) {
int[][] n=new int[3][];
n[0]=new int[] {1};
n[1]=new int[] {2, 3};
n[2]=new int[] {4, 5, 6};
for (int i = 0; i<n.length;i++){
for(int j =0;j < n[i].length;j++)
System.out.print(" "+ n[i][j]);
System.out.println();
}

}

}
第一次運算 for i <3 所以進入迴圈 for j < 3又再進入第二個圈 n[0][0]輸出是1
但是為啥麼第一次回圈j沒有先+1而是直接跳到i+1呢?

看更多先前的討論...收起先前的討論...
75105135 iT邦新手 5 級 ‧ 2015-05-20 15:29:57 檢舉
上面都看不懂了,著個更難= ="
如果是這樣的話
那你可能不適合自學

建議你花錢找老師或補習班
才有辦法學java
外獅佬 iT邦大師 1 級 ‧ 2015-05-20 23:31:09 檢舉
我看...樓主對變數的定義域根本就不清楚....落寞
每次當迴圈由第一層(for(i=....))進入第二層(for(j=0....))
變數j都會被重新初始化落寞

1 個回答

0
marsyang1
iT邦新手 4 級 ‧ 2015-05-20 21:34:58
最佳解答
&lt;pre class="c" name="code">
public class TempTest {
    public static void main(String[] args) {
        int[][] n = new int[3][];
        n[0] = new int[]{1};
        n[1] = new int[]{2, 3};
        n[2] = new int[]{4, 5, 6};
        for (int i = 0; i &lt; n.length; i++) {
            for (int j = 0; j &lt; n[i].length; j++) {
                System.out.println(" " + n[i][j]);
            }
        }
    }
}

螢幕印出

&lt;pre class="c" name="code">
 1
 2
 3
 4
 5
 6

看不出來有先i+1.迴圈都會是內圈的先跑完才跑外圈,第二圈的for迴圈我有多括起來比較清楚.另外你的程式有多寫了一行System.out.println() 應該是沒啥必要.要不要回頭檢查一下程式?

temo iT邦新手 1 級 ‧ 2015-05-21 15:39:00 檢舉

他多寫了一行System.out.println()是正常的
因為他前面是print,所以要再寫println來換行

他這程式寫法感覺像良葛格那本書的寫法....

第2圈(j)包在第1圈(i)裡面,所以第2圈有j+1,不過第2圈跑完print後就結束了,j也就歸0
再從第1圈跑

75105135 iT邦新手 5 級 ‧ 2015-05-30 02:21:58 檢舉

真心感謝兩位大師的回答,受益良多。

我要發表回答

立即登入回答