1
resposta

Aula 05 Use break e continue - Exercício 2 - Resposta errada?

Questão proposta no Ex. 2:

Escolha a opção adequada ao tentar compilar e rodar o arquivo a seguir:

class A {
    public static void main(String[] args) {
         fora: for(int a=0;a<30;a++)
         for(int b=0;b<1;b++)
         if(a+b==25) continue fora;
         else if(a+b==20) break;
         else System.out.println(a);
    }
}

A plataforma diz que a resposta correta seria a letra F: Compila e imprime 0 até 19, 21 até 24, 26 até 29.

Porém o correto seria a letra D: Compila e imprime 0 até 19

class A {
    public static void main(String[] args) {
         fora: for(int a=0;a<30;a++)
         for(int b=0;b<1;b++)
         if(a+b==25) continue fora;
         else if(a+b==20) break; // For loop para aqui (imprimindo de 0 até 19)
         else System.out.println(a);
    }
}
1 resposta

Bom dia, Marcelo. Acredito que o 'break' funcione para o segundo laço 'for'. No caso, quando chega no 20, ele quebra o segundo loop e volta para o primeiro antes de fazer a impressão, imprime de 21-24, cai no if(a+b==25) e imprime 26-29. Não cheguei a testar, mas acredito que é isso que acontece.