Programación de dardos: bucles

A veces, ciertas instrucciones requieren una ejecución repetida. Los bucles son una forma ideal de hacer lo mismo. Un bucle representa un conjunto de instrucciones que deben repetirse. En el contexto de un bucle, una repetición se denominaiteration.

La siguiente figura ilustra la clasificación de bucles:

Comencemos la discusión con Definite Loops. Un bucle cuyo número de iteraciones es definido / fijo se denominadefinite loop.

No Señor Bucle y descripción
1 en bucle

los forloop es una implementación de un loop definido. El bucle for ejecuta el bloque de código durante un número específico de veces. Se puede utilizar para iterar sobre un conjunto fijo de valores, como una matriz.

2 para ... en bucle

El bucle for ... in se utiliza para recorrer las propiedades de un objeto.

Continuando, analicemos ahora los bucles indefinidos. Un ciclo indefinido se utiliza cuando el número de iteraciones en un ciclo es indeterminado o desconocido. Los bucles indefinidos se pueden implementar usando -

No Señor Bucle y descripción
1 while Loop

El ciclo while ejecuta las instrucciones cada vez que la condición especificada se evalúa como verdadera. En otras palabras, el bucle evalúa la condición antes de que se ejecute el bloque de código.

2 hacer ... while Loop

El bucle do… while es similar al bucle while excepto que el bucle do ... while no evalúa la condición por primera vez que se ejecuta.

Pasemos ahora y discutamos el Loop Control Statements de Dart.

No Señor Declaración de control y descripción
1 declaración de rotura

los breakLa declaración se usa para quitar el control de una construcción. Utilizandobreaken un ciclo hace que el programa salga del ciclo. A continuación se muestra un ejemplo debreak declaración.

2 Continuar declaración

los continue declaración omite las declaraciones subsiguientes en la iteración actual y lleva el control al comienzo del ciclo.

Uso de etiquetas para controlar el flujo

UN labeles simplemente un identificador seguido de dos puntos (:) que se aplica a una declaración o un bloque de código. Se puede usar una etiqueta conbreak y continue para controlar el flujo con mayor precisión.

No se permiten saltos de línea entre ‘continue’ o ‘break’declaración y su nombre de etiqueta. Además, no debería haber ninguna otra declaración entre un nombre de etiqueta y un bucle asociado.

Ejemplo: etiqueta con rotura

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

El seguimiento output se muestra en la ejecución exitosa del código anterior.

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

Ejemplo: etiqueta con continuar

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

La siguiente salida se muestra en la ejecución exitosa del código anterior.

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

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

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