Shell Scripting – Declaração break em loops aninhados
Declaração break em loops aninhados – Shell Scripting
Na lição passada vimos o funcionamento e aplicação da declaração break em scripts do shell. Neste tutorial vamos trabalhar com a declaração break em loops aninhados, mostrando como utilizá-la para escolher qual loop interromper.
Às vezes, em um algoritmo que possui loops aninhados, precisamos interromper a execução do loop mais externo de acordo com uma condição que ocorre no loop interno (aninhado). Para isso, podemos usar o comando break de acordo com a seguinte sintaxe:
break n
onde o valor n indica o nível do loop que será interrompido. Por padrão, esse valor é 1, o que significa que o loop interrompido é o loop onde a instrução break se encontra. Se ajustarmos o valor de n para, por exemplo, 2, o comando break irá interromper a execução do próximo nível, que corresponde ao loop externo em relação ao atual, e assim sucessivamente para estruturas de repetição aninhadas mais complexas.
Vejamos dois exemplos.
Exemplo 01: Encerrando o loop interno (usando laços for).
Neste exemplo o comando break termina o loop interno quando o valor da variável y é igual a 12, mas o loop externo continua a ser executado (5 vezes):
#!/bin/bash # Saindo de um loop interno for (( x = 1; x <= 5; x++ )) do echo "Valor do loop externo: $x" for (( y = 1; y < 20; y++ )) do if [ $y -eq 12 ] then break fi echo "Valor no loop interno: $y" done done
Exemplo 02: Encerrando o loop externo.
Neste exemplo, o loop mais externo (nível 2) é interrompido quando, no loop mais interno (nível 1) o valor da variável y se torna maior do que 9:
#!/bin/bash # Saindo de um loop externo for (( x = 1; x < 5; x++ )) do echo "Valor do loop externo: $x" for (( y = 1; y < 20; y++ )) do if [ $y -gt 9 ] then break 2 fi echo "Valor no loop interno: $y" done done
É isso aí! Na próxima lição vamos tratar do comando continue, que permite interromper a execução de comandos dentro de um loop prematuramente sem no entanto finalizar o loop em si completamente,
Escreva um comentário