有時某些指令需要重複執行,迴圈是一種理想的方法。迴圈表示必須重複的一組指令。在迴圈的上下文中,重複稱為疊代。
下圖說明了迴圈的分類 -
下面我們首先來了解確定(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 語句跳過當前疊代中的後續語句,並將控制權帶回回圈的開頭。 |
標籤只是一個識別符號,後跟冒號(:
)應用於語句或程式碼塊。標籤可以與斷點一起使用,並繼續更精確地控制流程。
continue
或break
語句與其標籤名稱之間不允許換行。此外,標籤名稱和關聯迴圈之間不應該有任何其他語句。
範例:帶有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