Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024
Programação›Linguagens 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
Considerando 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.
AResultado0246
BResultado1
CResultado135
DResultado023456
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.