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