Mudanças entre as edições de "Pensamento Computacional - Comandos de controle de fluxo no Java: break e continue"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
 
=Comando break=
 
=Comando break=
 +
 +
==Sintaxe e Semântica==
  
 
Muitas vezes deseja-se que o um determinado loop seja interrompido sem que este encerramento seja feito pela condição colocada no comando de decisão. Normalmente seria um encerramento de forma atípica.  
 
Muitas vezes deseja-se que o um determinado loop seja interrompido sem que este encerramento seja feito pela condição colocada no comando de decisão. Normalmente seria um encerramento de forma atípica.  

Edição das 13h10min de 18 de outubro de 2023

Comando break

Sintaxe e Semântica

Muitas vezes deseja-se que o um determinado loop seja interrompido sem que este encerramento seja feito pela condição colocada no comando de decisão. Normalmente seria um encerramento de forma atípica.

O exemplo a seguir demonstra o uso do break: é puramente demonstrativo. O programa faz a leitura de 5 números inteiros. Caso o número seja igual ao "valor de i" (número do laço), o programa se encerra pelo break, caso contrário, o encerramento é pela expressão 2 do for (a condição de teste).

Notar que o break é usado normalmente para encerramentos "atípicos" de um loop. Normalmente, se esperaria que o loop se encerrasse normalmente, mas uma condição extra leva ao encerramento do loop.

import java.util.Scanner;

public class ComandoFor {
    public static void main(String[] args) {     
       int i, numero;
       Scanner teclado = new Scanner(System.in);

       for ( i = 0; i < 5; i = i + 1 ){
           System.out.println("Laço de número " + i);
           System.out.println("Entre com um número ");
           numero = teclado.nextInt();
           if ( i == numero )
               break;
       }
       if ( i == 5 )
               System.out.println("O loop acima terminou normalmente");
       else
               System.out.println("O loop acima encerrou pelo break");

    }    
}

Notar que é possível (mas muitas vezes complexo), manter uma saída normal pela condição do comando de repetição. Normalmente, uma variável indicadora pode ser usada como apoio. Veja o exemplo seguinte:

import java.util.Scanner;

public class ComandoBreak {
    public static void main(String[] args) {     
       int i, numero;
       boolean flag;
       Scanner teclado = new Scanner(System.in);

       for ( i = 0, flag = true; (i < 5) && flag ; i = i + 1 ){
           System.out.println("Laço de número " + i);
           System.out.println("Entre com um número ");
           numero = teclado.nextInt();
           if ( i == numero )
               flag = false;
       }
       if ( flag )
               System.out.println("O loop acima terminou normalmente, mas pelo fato de i <5 se tornar falso");
       else
               System.out.println("O loop acima encerrou normalmente, mas pelo fato do flag ter ficado falso ou pelas duas condições serem falsas");

    }    
}

Neste exemplo eliminou-se o uso do break usando a variável booleana flag como apoio. Observe que a expressão 2 do comando for ficou um pouco mais complexa.

break funciona com qualquer comando de repetição

É importante notar que o comando break pode ser usado com qualquer comando de repetição. A semântica é a mesma discutida: o loop é imediatamente encerrado.

Exercício 1

Implementar um programa Java para fazer a média de até N números inteiros a serem fornecidos pelo usuário. Somente números acima de zero devem ser considerados. Caso um número igual ou inferior a zero seja fornecido, o loop deve se encerrar. Use o comando for() e break. A média dos números fornecidos deve ser calculada no final.

Exercício 2

Repita o exercício anterior usando o comando while().

Exercício 3

Refaça o programa de adivinhação usando o comando "do while()" com loop eterno. A saída do loop deve ser realizada pela execução de um comando break.

DISCUSSÃO; Será que a implementação com break é mais eficiente em termos de tempo de execução?

Comando continue

O comando continue força o término de um laço do loop.

import java.util.Scanner;

public class ComandoFor {
    public static void main(String[] args) {     
       int i;
   
       for ( i=0; i < 10; i = i + 1 )
           System.out.println("Valor de i é " + i);  
           if ( i == 5 )
               continue;
    }    
}

Exercício