1. 程式人生 > >for迴圈雙層巢狀

for迴圈雙層巢狀

for迴圈的雙層巢狀只要分為兩種型別:內外巢狀獨立、內外巢狀相關。

1、內外巢狀獨立:

for(int i=0;i<4;i++) {

for(int j=0;j<4;j++) {
System.out.print("*");  //注意不是println。print將迴圈結果打印出來,println在每次迴圈後將結果打印出來並換行
}
System.out.print("\n");  //內部迴圈執行完一次後換行

}

內層for迴圈與外部無關,都是迴圈4次,相當於外部將內部的迴圈重複了4次,其結果會得到一個矩形

****
****
****

****

2、內外巢狀相互關聯

int n=4;
for(int i=0;i<n;i++) {
for(int j=0;j<i+1;j++) {
System.out.print("*");
}
System.out.print("\n");
}

內部迴圈依賴受控於外部迴圈。外部迴圈控制結果出現幾行,內部迴圈控制每行出現字元的個數。外部迴圈很容易理解,我要4行,所以迴圈4次。然後,內部迴圈

第一行(i=0)出現一次字元,內部迴圈一次(j=0;j<1;j++);

第二行(i=1)出現二次字元,內部迴圈二次(j=0;j<2;j++);

第三行(i=2)出現三次字元,內部迴圈三次(j=0;j<3;j++);

第四行(i=3)出現四次字元,內部迴圈四次(j=0;j<4;j++);

所以內部迴圈條件為(j=0;j<i+1;j++),結果出現一個直三角形(外部迴圈變數大於內部迴圈變數為正三角形;外部迴圈變數小於內部迴圈變數為倒三角形)。

*
**
***

****

在我這種小白看來,內外巢狀相關聯的迴圈比較難理解一些,但是隻需分析這個圖案或結果是由幾層迴圈巢狀起來的,每次迴圈之間是否存在關係,如果存在關係的話是什麼關係,其實變數的初始化(j=0)和自增自減(j++)基本上都是不動的,就是看關係來寫條件語句。這個明白了應該就不會有問題了。