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