Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FUNDATEC 2025

ProgramaçãoLinguagens de programação
Código
qg474913
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação / Ênfase em Programação de Sistemas na Tecnologia JAVA
Considerando o seguinte trecho de código Javascript, qual será a saída após executá-lo?Q45.png 237×122
  1. A1
  2. B2
  3. C3
  4. D4
  5. EAcusa erro
Revelar gabarito e comentário

GabaritoD — 4

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 D — a conta chega a 4 — alternativa D.

A ideia por trás

Em JavaScript, os operadores ++ e -- alteram o valor de uma variável em 1. A diferença entre pré e pós está no momento em que a alteração acontece: no pós-incremento (x++), o valor atual é usado primeiro e depois a variável é incrementada; no pré-incremento (++x), a variável é incrementada primeiro e o novo valor é usado. Essa distinção é essencial para prever o resultado de expressões que misturam os dois.

A expressão x = x++ + ++x é avaliada da esquerda para a direita, mas cada operando é avaliado antes da soma. O pós-incremento x++ retorna o valor atual de x (1) e depois incrementa x para 2. O pré-incremento ++x incrementa x (que já é 2) para 3 e retorna 3. A soma 1 + 3 = 4 é atribuída a x. O valor final de x é 4.

Esta questão cobra exatamente a ordem de avaliação e o efeito colateral dos operadores de incremento. É preciso rastrear o valor de x passo a passo, lembrando que o pós-incremento usa o valor antigo e o pré-incremento usa o novo.

O que a questão dá

  • código JavaScript: let x = 1; x = x++ + ++x; console.log(x);

O que queremos: o valor impresso pelo console.log

Passo 1 — Avaliar o pós-incremento x++

A expressão é avaliada da esquerda para a direita, então o primeiro operando é x++. No pós-incremento, o valor atual de x (1) é usado na soma, e depois x é incrementado para 2.

Por que esta fórmula: Não há fórmula; é a regra do operador pós-incremento: retorna o valor atual e depois soma 1 à variável.

valor usado na soma: 1; x agora vale 2

NÃO CAIA NESSA!

Pensar que x++ já retorna 2 — isso é o pré-incremento.

Passo 2 — Avaliar o pré-incremento ++x

Depois do primeiro operando, avaliamos o segundo: ++x. No pré-incremento, primeiro incrementamos x (que agora é 2) para 3, e depois usamos esse novo valor na soma.

Por que esta fórmula: É a regra do operador pré-incremento: soma 1 à variável e retorna o novo valor.

x agora vale 3; valor usado na soma: 3

NÃO CAIA NESSA!

Usar o valor antigo de x (2) em vez do novo (3).

Passo 3 — Somar os dois valores e atribuir a x

Agora temos os dois operandos: o primeiro retornou 1 e o segundo retornou 3. A soma é 1 + 3 = 4, e esse resultado é atribuído a x, sobrescrevendo o valor anterior.

Por que esta fórmula: A atribuição x = ... guarda o resultado da soma na variável x.

x=1+3x = 1 + 3

De onde vem cada valor: 11 = passo 1: valor retornado por x++ · 33 = passo 2: valor retornado por ++x

x=1+3x = 1 + 3
x=4x = \boxed{4}
NÃO CAIA NESSA!

Somar os valores errados, como 2 + 3 = 5, por confundir o retorno do pós-incremento.

Resposta: 4 — alternativa D

Link permanente: /questoes/qg474913