Olá desenvolvedores, hoje aprenderemos sobre as instruções break e continue. E sobre como elas podem ser utilizadas junto as estruturas de repetição. A instrução break (quebrar) é usada para encerrar um processamento em estruturas como o while, do while, for e switch.
A instrução continue, por sua vez cumpre o objetivo de encerrar o loop corrente seguindo para a próxima iteração. Mas sem encerrar o bloco como um todo, visto que ela volta para o início. Ao passo que com o break, nenhuma outra iteração ocorre no bloco de instrução após a sua execução.
Então, bora entender na prática como as instruções break e continue funcionam e onde elas se aplicam.
O BREAK NA PRÁTICA
Criaremos um programa onde o computador gerará um número aleatório entre 0 e 5 (para aumentar nossas chances de acerto). O usuário em três tentativas tentará adivinhar qual é este número.
Mas suponhamos que o usuário acerte logo na primeira. Você concordará comigo que não há necessidade de continuar pedindo a ele para tentar adivinhar o número gerado pelo computador. Uma vez que ele já o adivinhou.
Assim, utilizaremos o break para interromper a execução do programa se o usuário acertar antes de esgotar suas tentativas.
Não se preocupe neste momento em entender toda a estrutura, entrada de dados, comandos e sintaxes utilizadas. Atente-se apenas para o uso do break, que neste ponto é o que nos interessa.
Analisando o algoritmo, antes de entramos no loop inicializamos a variável de controle “cont” com o valor zero. E utilizamos o método estático Math.random(), da classe Random do pacote java.util para gerar o número aleatório. O número gerado foi armazenadi na variável “numSorteado”.
Dentro do corpo da instrução de repetição while, solicitamos ao usuário que entrasse com um valor entre 0 e 5. E para a comparação entre os números utilizamos as instruções de seleção if…else (tomada de decisão) e o operador relacional de igualdade (==).
Para casos em que de o usuário acerta o valor antes que suas chances se esgotem, colocamos a instrução break. Assim, como aconteceu no exemplo em que o acerto ocorreu logo na primeira tentativa, a execução do programa foi encerrada.
Mas se o usuário não tivesse acertado? A instrução “else” seria executada, o contador incrementado, e novamente o usuário seria solicitado a entrar com um novo número. E o processo se repetiria enquanto o contador fosse menor que três ou até que o usuário acertasse o número.
INSTRUÇÃO CONTINUE
A instrução “continue”, usada apenas em laços de repetição, possibilita a interrupção da execução para que haja o processamento de algo. Mas sem encerrar por completo a execução do bloco de instrução.
Quando esta instrução é executada o programa retorna imediatamente para verificar a expressão que é a condição de continuação do loop. Isto é, quando a instrução continue é chamada, ela provoca uma interrupção momentânea para verificar se a condição é/continua verdadeira. Se sim, o programa prossegue com a iteração até que a condição se torne falsa.
Criaremos um algoritmo que imprimirá no console uma sequência de números de 1 a 12. Entretanto, provocaremos uma parada em cada múltiplo de 3, porém, sem quebrar definitivamente a execução do bloco de instrução.
O algoritmo será composto de um laço de repetição for e de uma estrutura de decisão if.
Analise o código junto comigo, inicializamos a variável de controle com o valor “um”. A condição de continuação estabelecida é até que a variável num seja menor que 13, ou seja, igual a 12. E por fim incrementamos um contador.
No entanto, se a variável “num” for igual a um número múltiplo de 3, o fluxo de execução será interrompido. Porém, a condição de continuação será verificada e conforme o resultado desta verificação ele continuará ou não o fluxo de execução. E imprimirá na tela os valores correspondentes a cada iteração.
Todavia, ao provocar a interrupção, pedimos que uma mensagem fosse exibida no exato momento. Assim será possível observar o comportamento do algoritmo.
EM POUCAS PALAVRAS
Suponhamos que você tenha que percorrer uma lista de produtos. E nesta lista buscar por produtos que tenham desconto, colocá-los em outra lista e continuar a busca. O continue se encaixaria bem nesta situação.
Neste caso estabeleceríamos como condição de parada o fim da lista. Assim, o sistema percorreria a lista até encontrar o primeiro produto em promoção. E executaria a ação de alocá-lo em outra lista, verificaria a condição de continuação, e enquanto “true”, continuaria o processamento. Tal processo se repetiria até que toda a lista tivesse sido verificada.
Em suma, o continue interrompe o fluxo normal da execução, fazendo com que o laço volte para o início do for. Basicamente ele ignora todo o código que está abaixo dele e retoma o fluxo de execução do código para o início do laço de repetição.
Por sua vez o break simplesmente faz com o que a execução do laço seja interrompida de forma definitiva.
Espero que tenham realmente gostado de aprender sobre as instruções break e continue e realmente entendido a utilidade de ambos.