Dartループ文

特定のコマンドをループする必要がある場合があり、ループは理想的な方法です。ループは、ループする必要のある一連のコマンドを表します。ループのコンテキストでは、ループも反復と呼ばれます。

以下の写真には、ループの分類を示しています。

次には、明確な(Definite)ループを理解しましょう。反復の回数が明確/固定されているループは、明確なループと呼ばれます。

番号ループ説明
1forループforループは、コードブロックによって指定された回数を実行するために使用され、明確なループの実装です。
2for…inループfor…inループは、オブジェクトの属性をループするために使用されます。

次には、無限ループについて理解します。不定ループは、ループ内の反復回数が不確実または不明な場合に使用されます。以下のメソッドを使用して、無限ループを実現できます。

番号ループ説明
1whileループ指定された条件がtrueと評価されるたびに、whileループがコマンドを実行します。コードブロックを実行する前に、条件を評価します。
2do…whileループdo…whileループはwhileループに似ていますが、do…whileループは、ループが最初に実行されたときに条件を評価しない点が異なります。

次には、Dartのループ制御文を説明します。

番号制御文説明
1break制御文break文は、構造からコントロールを削除するために使用されます。ループでbreakを使用すると、プログラムはループを終了します。
2continue制御文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
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です