Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce176021
Banca
CESPE / CEBRASPE
Órgão
LNA
Ano
2024
Nível
Superior
Cargo
Tecnologista – Especialidade: Desenvolvimento e Arquitetura de Software
Imagem associada para resolução da questãoConsiderando que o código precedente tenha sido desenvolvido em Java, assinale a opção em que é apresentado o resultado esperado ao final de sua execução.
  1. AResultado0246
  2. BResultado1
  3. CResultado135
  4. DResultado023456
  5. EResultado01
Revelar gabarito e comentário

GabaritoC — Resultado 1 3 5

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”.

Laços de repetição em Java: o comando for

Gabarito: letra C. O código exibido na figura é um laço for em Java que imprime os números ímpares de 1 a 5, pois a variável de controle inicia em 1, a condição de parada é i < 6 e o incremento é i += 2. O resultado esperado é a sequência 1, 3, 5, exatamente o que a alternativa C apresenta.

O comando for é uma estrutura de repetição fundamental em Java, usada quando se sabe antecipadamente quantas vezes um bloco de código deve ser executado. Sua sintaxe é composta por três partes separadas por ponto e vírgula: a inicialização (executada uma única vez, antes do laço começar), a condição (avaliada antes de cada iteração; se verdadeira, o bloco é executado; se falsa, o laço termina) e a atualização (executada ao final de cada iteração, geralmente para modificar a variável de controle).

No código da questão, a inicialização define i = 1, a condição é i < 6 e a atualização é i += 2. Isso significa que o laço começa com i valendo 1, verifica se 1 é menor que 6 (verdadeiro), executa o corpo (imprime 1), depois incrementa i em 2, tornando-o 3. O processo se repete: 3 é menor que 6, imprime 3, incrementa para 5; 5 é menor que 6, imprime 5, incrementa para 7. Agora, 7 não é menor que 6, então o laço termina. Os valores impressos são, portanto, 1, 3 e 5.

A pegadinha clássica dessa questão é confundir o operador de incremento += com ++ (que incrementa de 1 em 1) ou com + (que não modifica a variável). Se o incremento fosse i++, o laço imprimiria 1, 2, 3, 4, 5. Se fosse i += 1, o resultado seria o mesmo. A alternativa C é a única que reflete corretamente o incremento de 2 em 2, começando em 1 e parando antes de 6.

Outra confusão comum é inverter a condição de parada. Se a condição fosse i <= 6, o laço incluiria o 7, pois após imprimir 5, i se tornaria 7 e 7 é menor ou igual a 6? Não, 7 não é menor ou igual a 6, então o laço ainda pararia em 5. Mas se a condição fosse i < 7, o 7 seria impresso. A condição i < 6 é o que garante que apenas 1, 3 e 5 sejam exibidos.

Guarde a relação entre a inicialização, a condição e o incremento: é exatamente essa combinação que determina quais números serão impressos. Na hora da prova, simule mentalmente as primeiras iterações para não errar.

Alternativa A — ❌ Incorreta

Apresenta os números pares 0, 2, 4, 6. Isso corresponderia a um laço que inicia em 0, incrementa de 2 em 2 e tem condição i <= 6 (ou i < 7). No código da questão, a inicialização é 1, não 0, e a condição é i < 6, que exclui o 6. Portanto, essa sequência não é gerada.

Alternativa B — ❌ Incorreta

Mostra apenas o número 1. Isso aconteceria se o laço tivesse um break após a primeira iteração ou se a condição fosse i < 2. No código, não há break e a condição i < 6 permite múltiplas iterações, então apenas o 1 não é o resultado.

Alternativa C — ✅ Correta ⟵ GABARITO

Exibe 1, 3, 5. É exatamente o que o laço for com i = 1, i < 6 e i += 2 produz. A cada iteração, i é ímpar e menor que 6, e o incremento de 2 garante que apenas os ímpares sejam impressos.

Alternativa D — ❌ Incorreta

Lista 0, 2, 3, 4, 5, 6. Essa sequência mistura pares e ímpares, o que não corresponde a um incremento constante. Um laço com incremento de 1 começando em 0 e indo até 6 produziria 0, 1, 2, 3, 4, 5, 6, não essa lista. O código da questão não gera essa mistura.

Alternativa E — ❌ Incorreta

Apresenta apenas 0 e 1. Isso seria o resultado de um laço que inicia em 0, incrementa de 1 em 1 e tem condição i < 2. No código, a inicialização é 1 e o incremento é 2, então essa sequência não é produzida.

NÃO CAIA NESSA!

A banca explora a confusão entre o incremento += 2 e o incremento unitário ++. Se você ler o código rapidamente e pensar que o incremento é i++, a resposta seria a alternativa A (0, 2, 4, 6) ou a D (0, 2, 3, 4, 5, 6), dependendo da inicialização. Mas o código usa i += 2, que pula de 2 em 2, e a inicialização é 1, não 0. Fique atento a esses detalhes: eles mudam completamente o resultado.

PEGA ESSA DICA!

Para resolver questões de laços for, simule as primeiras iterações mentalmente ou no papel. Anote o valor inicial, a condição e o incremento, e execute passo a passo até a condição falhar. Isso evita erros de interpretação e garante que você identifique a sequência correta.

Gabarito: letra C

Link permanente: /questoes/ce176021