Alternativa A - Somente quando se sabe quantas vezes a estrutura de repetição será executada.
Fundamentação Conceitual
Para responder corretamente, é necessário compreender a diferença semântica entre os dois tipos de laços de repetição mais comuns na programação estruturada:
- Estrutura
for: Projetada especificamente para cenários onde o número de repetições é conhecido antecipadamente ou controlado por um contador explícito (ex: percorrer um vetor de tamanho N, repetir algo 10 vezes). - Estrutura
while: Utilizada quando o número de repetições não é conhecido previamente, dependendo apenas da avaliação de uma condição lógica durante a execução (ex: ler dados até encontrar um valor nulo, aguardar um clique do usuário).
Análise das Alternativas
A questão trata da equivalência funcional e da adequação de uso entre essas estruturas:
- Alternativa A (Correta): Esta é a definição clássica de quando usar
for. Se sabemos que o código deve rodar exatamente n vezes, a sintaxe do for encapsula melhor essa lógica (inicialização, teste de parada e incremento). - Alternativa B (Incorreta): Embora seja possível simular qualquer
while com um for (criando um loop infinito com break), isso não é uma substituição direta nem recomendada quando a quantidade de iterações é indeterminada, pois torna o código menos legível. - Alternativa C (Incorreta): Existem muitos casos onde elas são intercambiáveis, especialmente em problemas de contagem simples.
- Alternativas D e E (Incorretas): Operações aritméticas e inicialização de variáveis não são critérios definidores para a troca entre esses laços.
Conclusão
A substituição de um while por um for é viável e adequada quando a lógica do programa permite determinar o número exato de execuções antes do início do laço. Isso garante que o código utilize a ferramenta sintática mais clara para o problema resolvido.