Questão nº 68
Questão de Tecnologia da Informação · FGV TCE-GO 2024 (nº 68)
Na programação estruturada, os laços de repetição são fundamentais para executar uma determinada sequência de instruções várias vezes, facilitando a automação de tarefas repetitivas. Dois dos laços mais comuns são os comandos "for" e "while", cada um com suas características específicas.
Assinale a opção que descreve corretamente as diferenças entre os laços "for" e "while" na programação estruturada.
- AO laço "for" é adequado para situações em que o número de iterações é conhecido antecipadamente, enquanto o laço "while" atende situações em que o número de iterações é desconhecido e depende de uma condição. (alternativa correta)
- BO laço "for" é usado quando se deseja percorrer uma coleção de elementos, como uma lista ou um array, enquanto o laço "while" é aplicado em situações em que é necessário repetir uma ação até que uma condição específica seja atendida.
- CO laço "for" é uma opção mais flexível, pois permite a declaração e inicialização de variáveis de controle dentro da própria estrutura do laço, enquanto o laço "while" exige que essas variáveis sejam definidas antes do laço.
- DO laço "while" é mais propenso a causar loops infinitos se a condição de parada não for adequadamente definida, enquanto o laço "for" oferece controle sobre o número de iterações devido à sua estrutura mais definida.
- EO laço "while" é mais eficiente em termos de desempenho do que o laço "for", pois avalia a condição de parada apenas no início de cada iteração, enquanto o laço "for" precisa avaliar a condição a cada iteração.
Resposta comentada
Gabarito Alternativa A
Laços de repetição são ferramentas de programação que permitem executar um bloco de código várias vezes. A escolha entre for e while depende principalmente de como você determina o fim dessas repetições.
- (A) Correta: O laço "for" é adequado para situações em que o número de iterações é conhecido antecipadamente, como contar de 1 a 10 ou percorrer todos os itens de uma lista. Já o laço "while" é ideal quando o número de repetições é incerto e depende de uma condição ser verdadeira para continuar e falsa para parar, como ler dados até encontrar um valor específico.
- (B) Incorreta: Embora o laço "for" seja frequentemente usado para percorrer coleções e o "while" para repetir até uma condição, esta alternativa descreve usos comuns e não a diferença fundamental que define a escolha entre eles. O "for" pode ser usado para um número conhecido de iterações mesmo sem uma coleção, e o "while" é sempre sobre uma condição.
- (C) Incorreta: Esta alternativa descreve uma diferença sintática. O "for" realmente permite inicializar e declarar variáveis de controle em sua própria estrutura, enquanto o "while" exige que a inicialização seja feita antes. No entanto, isso não torna o "for" inerentemente "mais flexível" em termos de funcionalidade ou propósito principal.
- (D) Incorreta: Ambos os laços podem causar loops infinitos se suas condições de parada não forem bem definidas. Embora o "while" possa parecer "mais propenso" devido à sua estrutura mais simples, um "for" mal configurado também pode ser infinito. A diferença não está na propensão a erros, mas na forma como o controle de iterações é estruturado.
- (E) Incorreta: Não há uma diferença intrínseca de desempenho entre "for" e "while". Ambos avaliam a condição de parada no início de cada iteração. Compiladores modernos são capazes de otimizar ambos os tipos de laços de forma muito semelhante, tornando a escolha baseada na clareza e no propósito, não na eficiência.
Fonte: FGV TCE-GO 2024 Analista de Controle Externo - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.