Analise o código Java a seguir.public class Main { pub...
public class Main { public static void main(String[] args) { for (int i = 0; i <= 10; i++) { if (i == 4) { break; } else if (i % 2 == 0) { continue; } System.out.println(i); } } }
A quantidade de valores que são exibidos na execução desse código é igual a
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - 2.
A questão aborda o entendimento do funcionamento dos comandos de controle de fluxo break e continue em um laço de repetição, mais especificamente em um loop for na linguagem de programação Java. Para resolver esta questão, é necessário compreender o seguinte:
- O comando break é utilizado para interromper a execução de um laço de repetição imediatamente. Após invocado, o programa continua executando a partir da primeira instrução após o bloco do laço.
- O comando continue é utilizado para pular a execução da iteração atual de um laço e continuar com a próxima iteração.
- Operadores de comparação, como ==, são usados para comparar valores.
- O operador módulo % é utilizado para obter o resto da divisão de um número por outro.
No código fornecido, temos um loop for que se inicia com i = 0
e se repete enquanto i <= 10
, com i
incrementado em 1 a cada iteração. Dentro do loop, há uma condição que verifica se i
é igual a 4 (i == 4
). Se for verdade, o comando break é executado, o que fará com que o loop termine imediatamente. Existe outra condição que verifica se i
é um número par, usando i % 2 == 0
, e em caso positivo, executa o comando continue, pulando para a próxima iteração do loop sem executar as linhas de código abaixo.
A linha de código System.out.println(i);
só será executada quando i
não for par e quando i
não for igual a 4. Ao analisar o loop, vemos que para os valores de i
iguais a 0, 2 e 4, o programa executará o continue ou break. Já nos valores 1 e 3, o System.out.println(i);
será executado, imprimindo esses números. Portanto, serão exibidos apenas dois valores antes do loop ser interrompido pelo comando break quando i
for igual a 4.
Portanto, a quantidade de valores exibidos na execução desse código é 2, o que faz da alternativa B a resposta correta.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Todos os numero pares* menores que 4
Esse código só irá exibir os números 1 e 3, ou seja, alternativa B.
David, 1 e 3? o i%2==0 garante que só sejam considerados números pares por o resto da divisão tem que zero. No caso só serão impressos 0 e 2, já que no 4 há o break.
Somente serão exibidos os valores 1 e 3. Quando i valer 0 e 2 atenderá a condição else if (i % 2 == 0) que verifica o resultado do módulo e assim executa a instrução continue.
O continue faz com que em uma estrutura de repetição como o for, as demais instruções que vierem a seguir sejam ignoradas e ele retome ao ponto de incremento e comparação de limite.
Quando o i valer 4, a condição do if (i == 4) será atendida e a execução da estrutura de repetição será finalizada.
Resumindo: os resultados 0 e 2 não serão exibidos.
Resposta correta: 2 números apenas serão exibidos (1 e 3).
public class Main {
public static void main(String[] args) {
for (int i = 0; i <= 10; i++) {
if (i == 4) {
break;
} else if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
Java Break and Continue
https://www.w3schools.com/java/java_break.asp
Como que o comentário do Rafael é o mais votado?
O else if (i % 2 == 0) tem um continue, somente. O que significa que os números que suprem essa condição não chegarão a imprimir na tela, pulando somente para a próxima iteração.
A execução seria:
i = 0. pula
i = 1. imprime
i = 2. pula
i = 3. imprime
i = 4. break
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo