for迴圈單層迴圈執行流程:
接下來看雙層迴圈:
迴圈巢狀是指在乙個迴圈語句中再定義乙個迴圈語句的語法結構。
while、do.. while和for迴圈語句都可以進行巢狀,並且他們之間可以進行互相巢狀。最常見的是在for迴圈中巢狀for迴圈。格式如下
for (初始化表示式; 迴圈條件; 操作表示式)
}實現使用 「 * 」 列印直角三角形
public class demo1
system.out.print("\n"); //換行
} }}
該例中定義了兩層 for 迴圈,執行結果如圖所示:
在其中定義了兩層 for 迴圈,分別為外層迴圈和內層迴圈,外層迴圈用於控制列印的行數。內層迴圈用於列印「 * 」,每一行的「 * 」個數逐行增加,最後輸出乙個直角三角形。下面分步驟進行詳細地講解,具體如下:
首先,在第 3 行**定義了兩個迴圈變數 i 和 j ,其中 i 為外層迴圈變數,j 為內層迴圈變數。
第一步,在第 4 行**將 i 初始化為 0,條件 i<=7 為true,首次進入外層迴圈的迴圈體。
第二步,在第 5 行**將 j 初始化為 1,由於此時 i 的值為 0,條件 j<=i (1<=0)為 false,內層迴圈結束,執行後邊的**,列印換行符。
第三步,執行第 4 行**中外層迴圈的操作表示式 i++, 將 i 的值自增為 1.
第四步,執行第 4 行**中的判斷條件 i<=7(1<=7),判斷結果為 true,進入外層迴圈的迴圈體,繼續執行內層迴圈。
第五步,執行第 5 行**中的判斷條件 j<=i(1<=1),首次進入內層迴圈的迴圈體,列印乙個「 * 」。
第六步,執行第 5 行**中內層迴圈的操作表示式 j++ ,將 j 的值自增為 2。
第七步,執行第 5 行**中的判斷條件 j<=i(2<=1) ,判斷結果為 false,內層迴圈結束,執行後面的**,列印換行符。
第八步,執行第 4 行**中外層迴圈的操作表示式 i++, 將 i 的值自增為 2。
第九步,執行第 4 行**中的判斷條件 i<=7 ,判斷結果為 true,進入外層迴圈的迴圈體,繼續執行內層迴圈。
第十步,由於 i 的值為 2,內層迴圈會執行兩次,即在第二行列印兩個「 * 」,在內層迴圈結束時會列印換行符。
(i=2,j=1,j<=i 為true,列印 「 * 」 ;
j++,j=2,j<=i 為true,再列印乙個 「 * 」 ;
j++,j=3,j<=i 為false,內層迴圈結束,執行後邊的**,列印換行符)
第十一步,依次類推,在第 3 行會列印 3 個「 * 」,逐行遞增,直到 i 的值為 8 時,外層迴圈的判斷條件 i<=7 結果為 false ,外層迴圈
結束,整個程式也就結束了。
例子二:
分步驟:
t==true f==false
第一步i=1,i<5 (t), j=2, i<=i (f),i++
第二步i=2,i<5 (t), j=2,j<=i (t),#,j++
j=3,j<=i (f) 結束內層迴圈,i++
第三步i=3,i<5 (t), j=2, j<=i (t),#,j++
j=3,j<=i (t), # , j++
j=4,j<=i (f) 結束內層迴圈,i++
第四步i=4,i<5 (t), j=2, j<=i(t),#,j++
j=3,j<=i (t), # , j++
j=4,j<=i (t), # , j++
j=5,j<=i (f) 結束記憶體迴圈,i++
第五步i=5,i<5 (f) 結束外層迴圈
隨筆 java for迴圈
本人之前對for迴圈,只知道基本的用法,但是對具體的檢查判斷條件 變數改變的時機把握的不是很準,尤其是巢狀幾層的時候,就更糊塗了,如果面試筆試的時候碰上類似的問題,如果答錯就直接悲劇了。所以特此記錄一下,等以後又忘記的時候看看,可以節省很多時間,呵呵。initialize judge print v...
Java for迴圈結構
1.for迴圈語法 for 初始化表示式 布林表示式 更新表示式 2.for迴圈執行原理 1 初始化表示式 布林表示式 更新表示式,都不是必須的 但兩個分號是必須的 2 初始化表示式最先執行,並且在整個for迴圈當中只執行一次 3 布林表示式必須是true false,不能是其他值 4 for迴圈的...
for雙層迴圈詳解
include main x printf x d n x printf x d n x 123456788 int i,j,m 0,n 0 for i 0 i 2 i printf d n n 1 includemain system.out.println 首先程式會執行 給i初始化賦值0 然後...