Dart迴圈語句


有時某些指令需要重複執行,迴圈是一種理想的方法。迴圈表示必須重複的一組指令。在迴圈的上下文中,重複稱為疊代。

下圖說明了迴圈的分類 -

循環的分類

下面我們首先來了解確定(Definite)迴圈 。疊代次數是明確/固定的迴圈稱為確定回圈。

編號 迴圈 描述
1 for迴圈 for迴圈是一個確定回圈的實現,用於執行程式碼塊指定的次數。
2 for…in迴圈 for...in迴圈用於迴圈物件的屬性。

接下來了解無限迴圈。當迴圈中的疊代次數不確定或未知時使用不定迴圈。可以使用以下方式實現無限迴圈:

編號 迴圈 描述
1 while迴圈 每次指定的條件求值為true時,while迴圈都會執行指令。在執行程式碼塊之前評估條件。
2 do…while迴圈 do...while迴圈類似於while迴圈,只是do...while迴圈不會在第一次迴圈執行時評估條件。

接下來學習Dart的迴圈控制語句。

編號 控制語句 描述
1 break語句 break語句用於將控制元件從構造中取出。在迴圈中使用break會導致程式退出迴圈。
2 continue語句 continue語句跳過當前疊代中的後續語句,並將控制權帶回回圈的開頭。

使用標籤來控制流程

標籤只是一個識別符號,後跟冒號(:)應用於語句或程式碼塊。標籤可以與斷點一起使用,並繼續更精確地控制流程。

continuebreak語句與其標籤名稱之間不允許換行。此外,標籤名稱和關聯迴圈之間不應該有任何其他語句。

範例:帶有break的標籤

void main() { 
   outerloop: // This is the label name 

   for (var i = 0; i < 5; i++) { 
      print("Innerloop: ${i}"); 
      innerloop: 

      for (var j = 0; j < 5; j++) { 
         if (j > 3 ) break ; 

         // Quit the innermost loop 
         if (i == 2) break innerloop; 

         // Do the same thing 
         if (i == 4) break outerloop; 

         // Quit the outer loop 
         print("Innerloop: ${j}"); 
      } 
   } 
}

執行上述程式碼後,將顯示以下輸出。

Innerloop: 0
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 1
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 2
Innerloop: 3
Innerloop: 0
Innerloop: 1
Innerloop: 2
Innerloop: 3
Innerloop: 4

範例:帶continue的標籤

void main() { 
   outerloop: // This is the label name 

   for (var i = 0; i < 3; i++) { 
      print("Outerloop:${i}"); 

      for (var j = 0; j < 5; j++) { 
         if (j == 3){ 
            continue outerloop; 
         } 
         print("Innerloop:${j}"); 
      } 
   } 
}

執行上述程式碼後,將顯示以下輸出。

Outerloop: 0 
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 

Outerloop: 1 
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 

Outerloop: 2 
Innerloop: 0 
Innerloop: 1 
Innerloop: 2