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.