1. 程式人生 > 實用技巧 >迴圈結構巢狀

迴圈結構巢狀


迴圈結構巢狀

什麼是二重迴圈:

一個迴圈體內又包含一個迴圈

外層迴圈迴圈一次,裡層迴圈迴圈一遍

@Test
public void test05(){
//列印一個五行五列的*
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
System.out.print("*");
}
System.out.println();
}
}

例子:


@Test
//列印九九乘法表
public void test10(){
for(int i =1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}

氣泡排序:

每次比較相鄰兩數

小的交換到前面

每輪結束後最大的數交換到最後

例如有五個數值的陣列:

用二重迴圈將5個數字升序排序

5個數字如何存放:

陣列,陣列.length = 5

控制比較多少輪:

外層迴圈,迴圈變數 i

控制每輪比較多少次:

內層迴圈,迴圈變數 j

交換資料

例子:

@Test
public void test11(){
int[] num = {34,45,32,15,59};
//外迴圈表示的是輪數
/*
* 原陣列 34 45 32 15 59
* 一共進行4輪:一共五位(num.length位)確定4位(num.length-1位)就能確定排序
*
* 第一輪確定最後一位,因為兩兩比較,大的向後移,進行四次比較(一共五位,到第四位可以和第五位比較)
*
* 第一輪 第一次 34 45 32 15 59
* 第一輪 第二次 34 32 45 15 59
* 第一輪 第三次 34 32 15 45 59
* 第一輪 第四次 34 32 15 45 59
*
* 第二輪確定倒數第二位,進行三次比較(第一輪已經確定了一位)
*
* 第二輪 第一次 32 34 15 45 59
* 第二輪 第二次 32 15 34 45 59
* 第二輪 第三次 32 15 34 45 59
*
* 第三輪確定倒數第三位,進行兩次比較
*
* 第三輪 第一次 15 32 34 45 59
* 第三輪 第二次 15 32 34 45 59
*
* 第四輪確定倒數第四位,進行一次比較 所以內迴圈應為(num.length-1-i)次
*
* 第四輪 第一次 15 32 34 45 59
*
*
*
*
*/
for(int i =0;i<num.length-1;i++){
//內迴圈表示的是每輪比較的次數
for(int j=0;j<num.length-i-1;j++){
if(num[j]>num[j+1]){
int temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
System.out.println("排序後:");
for(int i=0;i<num.length;i++){
System.out.print(num[i]+" ");
}
}