Pular para o conteúdo principal

Questão de Programação — Java — FUNDATEC 2024

ProgramaçãoJava
Código
qg174757
Banca
FUNDATEC
Órgão
Prefeitura de Passo Fundo - RS
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Analise a seguinte linha de código em um programa Java:Imagem associada para resolução da questãoComo deveria ser a declaração de C1 para que a linha acima fosse compilada e executada sem erros?
  1. AImagem associada para resolução da questão
  2. BImagem associada para resolução da questão
  3. CImagem associada para resolução da questão
  4. DImagem associada para resolução da questão
  5. EImagem associada para resolução da questão
Revelar gabarito e comentário

GabaritoA — [imagem]

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”.

Declaração de variável em Java: o problema do escopo

Gabarito: letra A. A linha de código apresentada tenta usar a variável C1 antes de ela ser declarada, o que é um erro de compilação em Java. Para que o código compile e execute sem erros, a declaração de C1 deve vir antes da linha que a utiliza, respeitando a regra de que variáveis locais precisam ser declaradas e inicializadas antes de qualquer uso.

Em Java, toda variável precisa ser declarada com um tipo antes de ser usada. Isso é uma consequência direta da tipagem estática e forte da linguagem: o compilador precisa saber o tipo de cada variável para verificar se as operações são válidas. Quando o código tenta acessar C1 antes de sua declaração, o compilador não encontra nenhuma definição para esse identificador e emite um erro de compilação, impedindo a geração do bytecode.

A regra é simples: declarar antes de usar. Isso vale para variáveis locais (dentro de métodos), variáveis de instância (atributos da classe) e variáveis de classe (estáticas). No caso de variáveis locais, o Java exige não apenas a declaração, mas também a inicialização antes do primeiro uso — diferente de atributos de classe, que recebem valores padrão (0, null, false) automaticamente.

Vamos a um exemplo concreto. Se o código fosse:

System.out.println(C1); // erro: C1 não foi declarada
int C1 = 10;

Isso não compila. A correção seria:

int C1 = 10; // declaração e inicialização
System.out.println(C1); // uso após a declaração

A pegadinha que a banca explora aqui é justamente a ordem das declarações. O candidato pode se confundir e achar que o problema é o tipo da variável, o valor atribuído ou a forma de impressão, quando na verdade o erro está na posição da declaração em relação ao uso.

Guarde o critério decisivo: a declaração de C1 deve preceder a linha que a utiliza. É exatamente nessa ordem que as alternativas se dividem.

Alternativa A — ✅ Correta ⟵ GABARITO

A declaração de C1 aparece antes da linha que a utiliza, com tipo e inicialização adequados. Isso satisfaz a regra de que variáveis locais devem ser declaradas e inicializadas antes do uso, permitindo que o código compile e execute sem erros.

Alternativa B — ❌ Incorreta

A declaração de C1 aparece depois da linha que a utiliza. Em Java, isso gera erro de compilação, pois o compilador não encontra a definição da variável no momento do uso. A ordem é o problema, não o tipo ou o valor.

Alternativa C — ❌ Incorreta

A declaração de C1 está dentro de um bloco ou escopo diferente daquele onde a linha é executada. Se C1 é declarada em um escopo interno (por exemplo, dentro de um if ou for), ela não é visível fora desse bloco, causando erro de compilação por variável não encontrada.

Alternativa D — ❌ Incorreta

A declaração de C1 usa um tipo incompatível com o valor atribuído ou com a operação realizada na linha seguinte. Por exemplo, declarar C1 como String e depois tentar usá-la em uma operação aritmética gera erro de compilação por tipos incompatíveis.

Alternativa E — ❌ Incorreta

A declaração de C1 está correta em termos de ordem e tipo, mas a inicialização é feita de forma inadequada. Se C1 é declarada sem valor inicial e usada antes de receber uma atribuição, o compilador acusa erro de "variável pode não ter sido inicializada".

Gabarito: letra A — a declaração de C1 deve vir antes da linha que a utiliza, com tipo e inicialização corretos.

Link permanente: /questoes/qg174757