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
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?
- A) A comparação é correta
- B) Não há erros no código
- C) Deveria usar somente um sinal de igual
- D) O operador = é incorreto aqui
- E) O código está otimizado
✅ Resposta correta: alternativa D
Resolução passo a passo
- 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
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.
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.
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.
Deve-se usar == para comparar valores.
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
condicional em programação
diagnostico
operadores relacionais em programacao · sintaxe condicional if
Revisar a diferença entre '=' e '==' em condições.
Confundir operador de atribuicao (=) com operador de comparacao (==) em condicoes if.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em um projeto de programação, um aluno precisa decidir se um código deve ser executado. Ele define um critério: o código…
- Identifique o tipo de erro na seguinte linha de código: x = 10; y = x +;
- Durante uma aula de programação, o professor pediu para os alunos escreverem um algoritmo que some dois números. Um…
- Avaliar trecho de pseudocódigo que deveria contar números pares de 1 a 10 mas retorna zero identifique provável erro
- Considere o pseudocódigo abaixo: SE x > 10 ENTAO x := x - 10. O que acontece se x for 5?
- João criou um código em Python e precisa avaliar se ele retorna o valor correto. Se o código deve retornar o número 20…
🔎 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
