Pular para o conteúdo principal

Questão de Programação — PHP — VUNESP 2023

ProgramaçãoPHP
Código
vu073308
Banca
VUNESP
Órgão
DPE-SP
Ano
2023
Nível
Superior
Cargo
Agente de Defensoria - Administrador de Redes
Observe o seguinte trecho de código escrito na linguagem PHP.Imagem associada para resolução da questãoO valor impresso da variável $n será:
  1. A0
  2. B1
  3. C3
  4. D5
  5. E10
Revelar gabarito e comentário

GabaritoC — 3

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 C — a conta chega a 3 — alternativa C.

A ideia por trás

O operador de incremento adiciona 1 a uma variável de forma compacta, mas o momento em que isso acontece muda o resultado. No pós-incremento (n++),ovaloratualeˊusadonaexpressa~oesoˊdepoisavariaˊveleˊincrementada.Nopreˊincremento(++n++), o valor atual é usado na expressão e só depois a variável é incrementada. No pré-incremento (++n), a variável é incrementada primeiro e o novo valor é usado na expressão.

Em uma atribuição como $x = $n++, o valor que $x recebe é o valor antigo de $n, e depois $n é incrementado. Já em x=++x = ++n, $n é incrementado primeiro e $x recebe o novo valor. Essa diferença é crucial para prever o resultado final da variável.

Esta questão testa exatamente essa distinção: o código usa pós-incremento dentro de uma atribuição, e a pergunta é sobre o valor final da variável $n, não sobre o valor retornado pela expressão.

O que a questão dá

  • código PHP com variável $n inicializada com 2

  • expressão de atribuição usando pós-incremento $n++

O que queremos: o valor impresso da variável $n após a execução do código

Passo 1 — Identificar o valor inicial de $n

Para saber o que acontece com a variável, precisamos primeiro saber de onde ela parte. O código inicializa $n com 2, então esse é o ponto de partida.

$n = 2
NÃO CAIA NESSA!

Não confundir com o valor retornado pela expressão; aqui estamos apenas registrando o estado inicial.

Passo 2 — Entender o efeito do pós-incremento

O código usa $n++ dentro de uma atribuição. No pós-incremento, o valor atual de $n é usado primeiro, e só depois $n é incrementado. Isso significa que a expressão retorna 2, mas $n passa a valer 3.

Por que esta fórmula: A regra do pós-incremento: o valor antigo é usado na expressão, e o incremento acontece depois.

$n = 3
NÃO CAIA NESSA!

Achar que $n++ retorna o valor já incrementado, confundindo com pré-incremento.

Passo 3 — Determinar o valor impresso

A pergunta é sobre o valor impresso da variável $n, não sobre o valor retornado pela expressão. Após a execução, $n foi incrementado para 3, então é esse o valor que será impresso.

3\boxed{3}
NÃO CAIA NESSA!

Responder 2, que é o valor retornado pela expressão, mas a pergunta é sobre o valor final da variável.

Resposta: 3 — alternativa C

Link permanente: /questoes/vu073308