Questão nº 77

Questão de Tecnologia da Informação · FCC TCE-GO 2022 (nº 77)

FCC2022Analista de Controle Externo - Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Considere a estrutura de repetição abaixo, escrita na linguagem de programação Java.

```
String[] estados = {"Goiás", "Paraná", "Rio de Janeiro", "São Paulo"};

I {
System.out.println(i);
}
```

Para que sejam exibidos os nomes dos estados contidos na array estados, a lacuna I deve se corretamente preenchida com a instrução

Resposta comentada

Gabarito Alternativa D

O loop for-each (também conhecido como enhanced for loop) no Java é uma forma simplificada de percorrer todos os elementos de uma coleção, como um array, sem precisar gerenciar índices. Ele lê "para cada elemento de um certo tipo dentro desta coleção, faça algo".

  • (A) Incorreta: A sintaxe for (String[] i : estados) indica que i seria um array de strings, mas estados é um array de strings individuais. O tipo de i deve ser o tipo de cada elemento dentro de estados, que é String, não String[].
  • (B) Incorreta: Esta é uma estrutura de loop for tradicional. No entanto, ela possui dois erros: 1) A condição i <= estados.length causaria um erro de ArrayIndexOutOfBoundsException ao tentar acessar um índice além do limite do array (índices vão de 0 a length - 1). Deveria ser i < estados.length. 2) O System.out.println(i); imprimiria o índice (0, 1, 2, 3) e não o nome do estado. Para imprimir o estado, seria necessário System.out.println(estados[i]);. Armadilha da banca: Esta alternativa é a mais tentadora, pois usa uma estrutura de loop comum, mas está incorreta tanto na condição de parada quanto no que é impresso.
  • (C) Incorreta: A sintaxe for (Object i ; estados) está incorreta para um loop for-each. Falta o caractere : entre a declaração da variável e a coleção.
  • (D) Correta: Esta é a sintaxe correta para um loop for-each. String i declara uma variável i do tipo String que, a cada iteração, receberá um dos elementos do array estados. Assim, System.out.println(i); exibirá corretamente cada nome de estado.
  • (E) Incorreta: Similar à alternativa B, esta é uma estrutura de loop for tradicional com erros: 1) int i = 1 faria o loop começar do segundo elemento, ignorando o primeiro ("Goiás"). 2) A condição i <= estados.length ainda causaria um ArrayIndexOutOfBoundsException. 3) System.out.println(i); imprimiria o índice (1, 2, 3, 4) e não o nome do estado.

Fonte: FCC TCE-GO 2022 Analista de Controle Externo - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho