Programowanie w rzutki - pętle

Czasami niektóre instrukcje wymagają ponownego wykonania. Pętle to idealny sposób na zrobienie tego samego. Pętla reprezentuje zestaw instrukcji, które należy powtórzyć. W kontekście pętli powtórzenie jest określane jakoiteration.

Poniższy rysunek ilustruje klasyfikację pętli -

Zacznijmy dyskusję od Definite Loops. Pętla, której liczba iteracji jest określona / ustalona, ​​jest określana jakodefinite loop.

Sr.No Pętla i opis
1 dla pętli

Plik forpętla jest implementacją określonej pętli. Pętla for wykonuje blok kodu określoną liczbę razy. Może być używany do iteracji po ustalonym zestawie wartości, takim jak tablica

2 dla… w pętli

Pętla for ... in służy do przeglądania właściwości obiektu.

Przechodząc dalej, omówmy teraz nieokreślone pętle. Nieokreślona pętla jest używana, gdy liczba iteracji w pętli jest nieokreślona lub nieznana. Nieokreślone pętle można zaimplementować za pomocą -

Sr.No Pętla i opis
1 while Loop

Pętla while wykonuje instrukcje za każdym razem, gdy określony warunek przyjmuje wartość true. Innymi słowy, pętla ocenia warunek przed wykonaniem bloku kodu.

2 zrób… while Loop

Pętla do… while jest podobna do pętli while, z tą różnicą, że pętla do ... while nie ocenia warunku po raz pierwszy wykonywana przez pętlę.

Przejdźmy teraz i omówmy Loop Control Statements Dart.

Sr.No Oświadczenie i opis kontroli
1 instrukcja break

Plik breakInstrukcja służy do wyjęcia kontroli z konstrukcji. Za pomocąbreakw pętli powoduje, że program wychodzi z pętli. Poniżej znajduje się przykładbreak komunikat.

2 dalej Oświadczenie

Plik continue instrukcja pomija kolejne instrukcje w bieżącej iteracji i przenosi sterowanie z powrotem na początek pętli.

Używanie etykiet do sterowania przepływem

ZA labelto po prostu identyfikator, po którym następuje dwukropek (:), który jest stosowany do instrukcji lub bloku kodu. Etykieta może być używana zbreak i continue aby dokładniej kontrolować przepływ.

Podziały wiersza nie są dozwolone między ‘continue’ lub ‘break’instrukcja i nazwa etykiety. Ponadto między nazwą etykiety a skojarzoną pętlą nie powinno być żadnych innych instrukcji.

Przykład: etykieta z przerwą

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}"); 
      } 
   } 
}

Następujące output jest wyświetlany po pomyślnym wykonaniu powyższego kodu.

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

Przykład: etykieta z kontynuacją

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}"); 
      } 
   } 
}

Poniższe dane wyjściowe są wyświetlane po pomyślnym wykonaniu powyższego kodu.

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

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

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