Programmazione Dart - Loop

A volte, alcune istruzioni richiedono l'esecuzione ripetuta. I loop sono un modo ideale per fare lo stesso. Un ciclo rappresenta un insieme di istruzioni che devono essere ripetute. Nel contesto di un ciclo, una ripetizione è definita come un fileiteration.

La figura seguente illustra la classificazione dei loop:

Cominciamo la discussione con Definite Loops. Un ciclo il cui numero di iterazioni è definito / fisso è definito come un filedefinite loop.

Suor n Loop e descrizione
1 per loop

Il forloop è un'implementazione di un ciclo definito. Il ciclo for esegue il blocco di codice per un numero di volte specificato. Può essere utilizzato per iterare su un insieme fisso di valori, come un array

2 per ... in Loop

Il ciclo for ... in viene utilizzato per scorrere le proprietà di un oggetto.

Andando avanti, discutiamo ora dei loop indefiniti. Un ciclo indefinito viene utilizzato quando il numero di iterazioni in un ciclo è indeterminato o sconosciuto. I cicli indefiniti possono essere implementati usando -

Suor n Loop e descrizione
1 mentre Loop

Il ciclo while esegue le istruzioni ogni volta che la condizione specificata restituisce true. In altre parole, il ciclo valuta la condizione prima che il blocco di codice venga eseguito.

2 fare ... mentre Loop

Il ciclo do ... while è simile al ciclo while tranne per il fatto che il ciclo do ... while non valuta la condizione per la prima volta che il ciclo viene eseguito.

Passiamo ora e discutiamo di Loop Control Statements di Dart.

Suor n Dichiarazione di controllo e descrizione
1 Istruzione break

Il breakviene utilizzata per estrarre il controllo da un costrutto. Utilizzandobreakin un ciclo fa sì che il programma esca dal ciclo. Di seguito è riportato un esempio dibreak dichiarazione.

2 continua Dichiarazione

Il continue l'istruzione salta le istruzioni successive nell'iterazione corrente e riporta il controllo all'inizio del ciclo.

Utilizzo delle etichette per controllare il flusso

UN labelè semplicemente un identificatore seguito da due punti (:) applicato a un'istruzione o a un blocco di codice. È possibile utilizzare un'etichetta conbreak e continue per controllare il flusso in modo più preciso.

Non sono consentite interruzioni di riga tra i file ‘continue’ o ‘break’dichiarazione e il nome dell'etichetta. Inoltre, non dovrebbero esserci altre istruzioni tra il nome di un'etichetta e un ciclo associato.

Esempio: etichetta con interruzione

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

Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.

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

Esempio: etichetta con continua

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

Il seguente output viene visualizzato in caso di corretta esecuzione del codice precedente.

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

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

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