Questão nº 30
Questão de Tecnologia da Informação - Sistemas de Informação · FCC TRT15 2023 (nº 30)
Considere a existência do array abaixo, criado em uma aplicação Java, em condições ideais.
String[] nomes = {"Marta", "Paulo", "Carolina", "Joaquim", "Pedro"};
Considere, também, os laços de repetição abaixo, criados com o objetivo de percorrer o array e exibir seus valores.
I.
for (String nome : nomes) {
System.out.println(nome);
}
II.
for (int i = 0; i < nomes.length; i++) {
System.out.println(nomes[i]);
}
III.
int indice = 0;
while (indice < nomes.length) {
System.out.println(nomes[indice]);
indice++;
}
IV.
int index = 0;
do {
System.out.println(nomes[index]);
index++;
} while (index < nomes.length);
Percorre corretamente o array e exibe seus valores APENAS os laços de repetição que constam em
- AI, II e III. (alternativa correta)
- BII e IV.
- CI e III.
- DI e IV.
- EII, III e IV.
Resposta comentada
Gabarito Alternativa A
Em Java, percorrer um array significa visitar cada um de seus elementos em sequência, geralmente para ler ou processar seus valores. Existem diferentes tipos de laços de repetição (loops) que permitem fazer isso, cada um com sua sintaxe e comportamento.
- (A) Correta: As alternativas I, II e III representam formas padrão e robustas de percorrer um array em Java, exibindo todos os seus valores corretamente.
- Laço I (Enhanced for loop ou for-each): É a maneira mais simples e legível de iterar sobre todos os elementos de um array ou coleção quando você não precisa do índice. Ele atribui cada elemento do array
nomesà variávelnomeem cada iteração e o imprime. - Laço II (Standard for loop): É o laço tradicional que utiliza um contador (
i) para acessar os elementos pelo seu índice. Ele começa do índice0(primeiro elemento) e vai aténomes.length - 1(último elemento), garantindo que todos os elementos sejam acessados sem ultrapassar os limites do array. - Laço III (While loop): Semelhante ao
fortradicional, mas a inicialização (int indice = 0;), a condição (indice < nomes.length) e o incremento (indice++;) do índice são gerenciados manualmente. Ele também acessa os elementos pelo índice de0anomes.length - 1, visitando todos os elementos corretamente.
- Laço I (Enhanced for loop ou for-each): É a maneira mais simples e legível de iterar sobre todos os elementos de um array ou coleção quando você não precisa do índice. Ele atribui cada elemento do array
- (B) Incorreta: A alternativa IV não é considerada um método robusto para percorrer arrays em todas as situações.
- (C) Incorreta: A alternativa IV não é considerada um método robusto para percorrer arrays em todas as situações.
- (D) Incorreta: A alternativa IV não é considerada um método robusto para percorrer arrays em todas as situações.
- (E) Incorreta: A alternativa IV não é considerada um método robusto para percorrer arrays em todas as situações.
(A) Incorreta: A alternativa IV, que utiliza o laço do-while, é o distrator. Embora para o array específico {"Marta", "Paulo", "Carolina", "Joaquim", "Pedro"} ele funcione e exiba todos os valores, o laço do-while sempre executa o bloco de código pelo menos uma vez antes de verificar a condição. A armadilha da banca aqui é que, se o array nomes estivesse vazio (String[] nomes = {};), o do-while tentaria acessar nomes[0] na primeira iteração, resultando em um ArrayIndexOutOfBoundsException (erro de índice fora dos limites do array), pois não há elemento na posição 0. Portanto, ele não é um método geralmente correto e robusto para percorrer arrays, especialmente em cenários onde o array pode estar vazio. Os laços for (I e II) e while (III) verificam a condição antes de tentar acessar qualquer elemento, tornando-os seguros para arrays vazios.
Fonte: FCC TRT15 2023 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.