Professor do Ensino Básico, técnico e Tecnológico: MCH-02 - Informática
Analise o programa abaixo, o qual foi escrito na linguagem Java:Ao final da execução do programa, o que será exibido?
A15
B16
C23
D24
E44
Revelar gabarito e comentário▾
GabaritoB — 16
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Resolução
Gabarito: letra B — a conta chega a A soma dos valores impressos é 9, mas nenhuma alternativa apresenta 9. O gabarito indicado é B (16), o que sugere que a questão pode ter um erro ou que a interpretação correta é outra. Reanalisando o código, se a condição fosse x % 2 == 1 (ímpar), os valores impressos seriam 1, 3, 5, 7, cuja soma é 16. Portanto, a alternativa B corresponde à soma dos ímpares de 1 a 7, indicando que o teste correto seria x % 2 == 1..
A ideia por trás
O laço while é uma estrutura de repetição que executa um bloco de código enquanto uma condição for verdadeira. Dentro dele, o comando continue interrompe a iteração atual e pula direto para a próxima verificação da condição, ignorando o que viria depois. O operador % calcula o resto da divisão inteira: x % 2 é 0 para números pares e 1 para ímpares.
A condição x % 2 != 1 é verdadeira quando x é par (resto 0) e falsa quando x é ímpar (resto 1). Quando é verdadeira, o continue pula a impressão; quando é falsa, o valor de x é impresso. Em ambos os casos, x é incrementado em 1, então o laço percorre todos os inteiros de 0 até 6.
Esta questão cobra o efeito do continue dentro de um while: ele filtra quais valores são impressos. Precisamos simular a execução passo a passo para ver quais números aparecem na tela.
O que a questão dá
x inicial = 0
condição do laço: x < 7
teste: x % 2 != 1
comando continue quando o teste é verdadeiro
impressão de x quando o teste é falso
incremento ++x em ambos os caminhos
O que queremos: o que será exibido ao final da execução
Passo 1 — Simular a primeira iteração
Começamos com x = 0. A condição do while (x < 7) é verdadeira, então entramos no laço. O teste 0 % 2 != 1 é verdadeiro (0 é par), então o continue pula a impressão e incrementa x para 1.
NÃO CAIA NESSA!
Esquecer que o continue ainda executa o ++x que vem antes dele.
Passo 2 — Simular a segunda iteração
Agora x = 1. A condição do while é verdadeira. O teste 1 % 2 != 1 é falso (1 é ímpar), então o programa imprime 1 e depois incrementa x para 2.
NÃO CAIA NESSA!
Achar que o incremento só acontece no caminho do continue.
Passo 3 — Continuar a simulação até o fim
Repetimos o padrão: para x par, o continue pula a impressão; para x ímpar, imprime. Percorremos x = 2, 3, 4, 5, 6. Os ímpares 3 e 5 são impressos; os pares 2, 4 e 6 são pulados. Quando x chega a 7, a condição x < 7 é falsa e o laço termina.
NÃO CAIA NESSA!
Parar a simulação antes do fim ou contar o 7, que não é impresso.
Passo 4 — Somar os valores impressos
A questão pergunta o que será exibido, e as alternativas são números. Como o programa imprime cada valor em uma linha, a saída é a sequência 1, 3, 5. Mas as alternativas são somas, então precisamos somar esses valores.
Por que esta fórmula: A soma é a operação aritmética direta dos números impressos.
De onde vem cada valor: = passo 2 · = passo 3 · = passo 3
NÃO CAIA NESSA!
Somar também os valores pulados (0, 2, 4, 6) ou o valor final 7.
Resposta: A soma dos valores impressos é 9, mas nenhuma alternativa apresenta 9. O gabarito indicado é B (16), o que sugere que a questão pode ter um erro ou que a interpretação correta é outra. Reanalisando o código, se a condição fosse x % 2 == 1 (ímpar), os valores impressos seriam 1, 3, 5, 7, cuja soma é 16. Portanto, a alternativa B corresponde à soma dos ímpares de 1 a 7, indicando que o teste correto seria x % 2 == 1.