Programação Dart - Loops

Às vezes, certas instruções requerem execução repetida. Os loops são uma forma ideal de fazer o mesmo. Um loop representa um conjunto de instruções que devem ser repetidas. No contexto de um loop, uma repetição é denominada como umiteration.

A figura a seguir ilustra a classificação de loops -

Vamos começar a discussão com Loops Definidos. Um loop cujo número de iterações é definido / fixo é denominado como umdefinite loop.

Sr. Não Loop e descrição
1 para loop

o forloop é uma implementação de um loop definido. O loop for executa o bloco de código por um número especificado de vezes. Ele pode ser usado para iterar sobre um conjunto fixo de valores, como uma matriz

2 para ... em Loop

O loop for ... in é usado para percorrer as propriedades de um objeto.

Continuando, vamos agora discutir os loops indefinidos. Um loop indefinido é usado quando o número de iterações em um loop é indeterminado ou desconhecido. Loops indefinidos podem ser implementados usando -

Sr. Não Loop e descrição
1 while Loop

O loop while executa as instruções cada vez que a condição especificada é avaliada como verdadeira. Em outras palavras, o loop avalia a condição antes que o bloco de código seja executado.

2 faça ... enquanto Loop

O loop do ... while é semelhante ao loop while, exceto que o loop do ... while não avalia a condição pela primeira vez que o loop é executado.

Vamos agora prosseguir e discutir o Loop Control Statements de Dart.

Sr. Não Declaração de controle e descrição
1 declaração break

o breakdeclaração é usada para tirar o controle de uma construção. Usandobreakem um loop faz com que o programa saia do loop. A seguir está um exemplo dobreak declaração.

2 continuar declaração

o continue instrução ignora as instruções subsequentes na iteração atual e leva o controle de volta ao início do loop.

Usando rótulos para controlar o fluxo

UMA labelé simplesmente um identificador seguido por dois pontos (:) que é aplicado a uma instrução ou bloco de código. Um rótulo pode ser usado combreak e continue para controlar o fluxo com mais precisão.

Quebras de linha não são permitidas entre ‘continue’ ou ‘break’declaração e seu nome de rótulo. Além disso, não deve haver nenhuma outra instrução entre um nome de rótulo e um loop associado.

Exemplo: etiqueta com quebra

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

Os seguintes output é exibido na execução bem-sucedida do código acima.

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

Exemplo: etiqueta com 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}"); 
      } 
   } 
}

A seguinte saída é exibida na execução bem-sucedida do código acima.

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

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

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