特定のコマンドをループする必要がある場合があり、ループは理想的な方法です。ループは、ループする必要のある一連のコマンドを表します。ループのコンテキストでは、ループも反復と呼ばれます。
以下の写真には、ループの分類を示しています。
次には、明確な(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
コメントを残す