農林漁牧網

您現在的位置是:首頁 > 林業

Java迴圈巢狀詳解

2022-08-25由 李興華java2python 發表于 林業

目錄樹是什麼結構

Java迴圈巢狀詳解

在程式設計的過程之中,大部分的結構都是可以進行巢狀的使用,例如:在switch裡面可以繼續巢狀迴圈或者是if語句,在迴圈結構裡面也可以巢狀if結構,那麼同理,一個迴圈的內部也一定可以巢狀另外一個迴圈。

關於迴圈巢狀的提醒:

如果你現在僅僅是一個初學者,實際上我個人並不建議把太多的精力放在這些複雜的巢狀邏輯上,更多的時候是希望大家可以將迴圈的巢狀概念有所理解,只要你能夠編寫出迴圈,就可以正常的向後學習課程內容。

範例:

列印乘法口訣表

public class YootkDemo {

public static void main(String args[]) {

for (int x = 1 ; x <= 9 ; x ++) { // 控制行

for (int y = 1 ; y <= x ; y ++) {

System。out。print(y + “*” + x + “=” + (x * y) + “\t”) ; // 乘法口訣

}

System。out。println() ; // 換行

}

}

}

程式執行結果:

Java迴圈巢狀詳解

此時的程式利用了迴圈巢狀結構實現了最終的結果輸出,而本程式的執行流程如下圖。

Java迴圈巢狀詳解

在迴圈巢狀的結構裡面另外有一個經典的題目就是列印三角形的內容了。

範例:

列印三角形

public class YootkDemo {

public static void main(String args[]) {

int line = 5 ; // 定義總共要輸出5行三角形

for (int x = 0 ; x < line ; x ++) { // 控制行

for (int y = 0 ; y < line - x ; y ++) {

System。out。print(“ ”) ; // 輸出空格

}

for (int y = 0 ; y <= x ; y ++) {

System。out。print(“* ”) ; // 乘法口訣

}

System。out。println() ; // 換行

}

}

}

Java迴圈巢狀詳解

在現在的專案開發過程裡面,如果不是必須的情況下,這種迴圈的巢狀程式碼會出現,但是不會出現的很多,而且隨著你自己開發經驗的累積,那麼最終也一定可以熟練掌握。

既然已經存在了迴圈巢狀結構,那麼就必須去討論一下關於continue語句的問題了,在程式的開發語言裡面可以發現“C”、“C++”、“Java”語法的結構都是非常類似,在C語言裡面提供有了一個“goto”關鍵字,這個關鍵字是在所有專案開發中都被明令禁止使用的開發關鍵字,因為會造成程式邏輯結構的混亂,在Java裡面將“goto”關鍵字定義為了未使用到的關鍵字,如果此時在迴圈巢狀結構裡面你非要進行一種程式碼跳轉的實現,就可以透過continue來完成。

範例:

在迴圈巢狀結構裡面使用continue進行跳轉。

public class YootkDemo {

public static void main(String args[]) {

point: for (int x = 0 ; x < 3 ; x ++) {

for (int y = 0 ; y < 3 ; y ++) {

if (x == y) {

continue point ; // 程式碼跳轉

}

System。out。print(x + “、”) ;

}

System。out。println() ; // 輸出換行

}

}

}

在內部的for迴圈巢狀結構裡面使用了continue實現了無條件的跳轉處理操作,所以最終的執行結果就出現了偏差,但是這樣的程式邏輯是非常不適合閱讀,所以以上的程式碼形式在開發中儘量不要出現。

對於程式的邏輯結構來講有如下的幾句話:

【1】if分支結構可以使用布林表示式判斷;

【2】switch支援內容的直接判斷,可以使用int、char、enum、String判斷內容;

在JDK 13之後又可以使用yield進行區域性的內容返回;

【3】不知道迴圈次數但是知道迴圈結束條件使用while迴圈,明確的知道迴圈次數使用for迴圈;

對於所有的初學者不建議編寫過於繁瑣的程式邏輯程式碼,像迴圈巢狀等功能如果有可能儘量不要在初學的階段進行使用,初學者儘可能寫簡單程式碼。