1. 程式人生 > >對於for迴圈的巢狀迴圈的理解

對於for迴圈的巢狀迴圈的理解

迴圈巢狀是外迴圈裡套個內迴圈,外迴圈執行一次,內迴圈全部執行完,直到外迴圈執行完畢,整個迴圈結束。

迴圈次數:外迴圈的次數*內迴圈的次數;

例:

for(int i=0;i<10;i++){
    for(int j=0;j<3;j++) {
    System.out.print("i*j="+i*j);
    }
}

當開始迴圈的時候,i=0,然後繼續執行,j=0,輸出i*j=0
此時迴圈從j=1, i仍舊為0,j的值為2,輸出結果為i*j=0,此時j++,j的值為2
迴圈從j=2,i仍舊為0 ,輸出結果為i*j=0
當j=3,不滿足j<3跳出內部for迴圈,執行外部for迴圈第二行程式碼,此時i++,i的值變為1
迴圈i=1, j=0時,結果為i*j=0
i=1,j=1 結果為i*j=1;
。。。。。。
。。。。。。
當i迴圈到9,j=2是,輸出迴圈結果為i*j=18
當i=10,不滿足i<10,跳出外部迴圈,執行第6行

例:

for (out = nElems - 1; out > 1; out--) {
    for (in = 0 ; in < out; in++) {
    if (a[in] > a[in+1]) 
        swap(in,in+1);
    }
}

這個氣泡排序功能,在呼叫玩10次的insert之後,nElems 被賦值為10,out=9,執行內迴圈,這裡最關鍵的就是in的範圍是隨著外面的out的值的變化而變化。