GeraProva GeraProva Provas com IA para professores do Brasil
Computação5º anoBNCC EF05CO04Difícil⏱ curto

Um estudante escreveu um código que não estava funcionando. Ele usou "if x = 10" ao invés de "if x == 10". O…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF05CO04

Criar e simular algoritmos representados em linguagem oral, escrita ou pictográfica, que incluam sequências, repetições e seleções condicionais para resolver problemas de forma independente e em colaboração.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Um estudante escreveu um código que não estava funcionando. Ele usou "if x = 10" ao invés de "if x == 10". O que está errado?

  1. A) A comparação é correta
  2. B) Não há erros no código
  3. C) Deveria usar somente um sinal de igual
  4. D) O operador = é incorreto aqui
  5. E) O código está otimizado

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. Em muitas linguagens de programação, como C, Java e JavaScript, o sinal de igual único (=) é o operador de atribuição: ele guarda um valor em uma variável. Já a comparação de igualdade usa o operador duplo (==). Passo 2: A expressão if x = 10 tenta atribuir o valor 10 a x dentro da condição, e não verificar se x vale 10. Passo 3: Por isso, o operador = está incorreto nesse contexto, e o certo seria if x == 10. Passo 4: A alternativa A está errada porque a comparação só é correta com ==, não com =. Passo 5: A alternativa B está errada porque há sim um erro, pois o código não faz o que o estudante pretendia. Passo 6: A alternativa C está errada porque a condição exige o operador de comparação duplo, e não um sinal de igual simples. Passo 7: A alternativa E está errada porque o enunciado não trata de otimização, e o problema é de lógica e sintaxe, não de desempenho. Passo 8: O gabarito D está correto, pois o problema está justamente no uso do operador = dentro do if.

💡 Dica: Identifique o erro de sintaxe no código.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno acha que, por existir um sinal de igual, a expressão está comparando x com 10. Ele confunde o operador de atribuição com o de comparação.

B Erradaerro: Conceitual

O aluno acredita que, como o código roda sem erro de compilação, ele está correto. Ele confunde erro de sintaxe com erro de lógica, que é o caso aqui.

C Erradaerro: Conceituala que mais engana

O aluno acha que o problema é usar dois sinais de igual, quando na verdade é justamente o contrário: a comparação exige o operador duplo ==.

Por que engana: Confundir operador de atribuicao (=) com operador de comparacao (==) em condicoes if.

D Correta

Deve-se usar == para comparar valores.

E Erradaerro: Senso comum

O aluno associa a palavra código a eficiência e otimização, sem analisar se a instrução realmente faz o que o programador pretendia. Ele usa uma intuição genérica em vez do conceito de atribuição versus comparação.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura baixo
Discriminação alto
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ direta🧩 consolidacao
🎯 Conceito central

condicional em programação

📌 Objetivo

diagnostico

🧱 Pré-requisitos

operadores relacionais em programacao · sintaxe condicional if

📚 Reveja

Revisar a diferença entre '=' e '==' em condições.

⚠️ Erro mais comum

Confundir operador de atribuicao (=) com operador de comparacao (==) em condicoes if.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Algoritmos com seleção condicional

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.