Laços de repetição
Quando estamos desenvolvendo um programa de computador, muitas vezes encontramos situações em que um conjunto de operações deve ser executado repetidas vezes.
Na UFMT, por exemplo, o cálculo da nota final de uma disciplina deve ser realizado para todos os estudantes de uma mesma turma.
Até aqui, a solução que teríamos seria repetir os códigos relacionados à leitura das notas e ao cálculo da média:
#include<stdio.h>
#include<stdlib.h>
int main(void){
float n1, n2, n3;
/* Aluno 1 */
printf("Digite a nota 1:\n");
scanf("%f", &n1);
printf("Digite a nota 2:\n");
scanf("%f", &n2);
printf("Digite a nota 3:\n");
scanf("%f", &n3);
printf("Média do aluno: %f", (n1+n2+n3)/3);
/* Aluno 2*/
printf("Digite a nota 1:\n");
scanf("%f", &n1);
printf("Digite a nota 2:\n");
scanf("%f", &n2);
printf("Digite a nota 3:\n");
scanf("%f", &n3);
printf("Média do aluno: %f", (n1+n2+n3)/3);
/* ... */
/* Aluno n */
printf("Digite a nota 1:\n");
scanf("%f", &n1);
printf("Digite a nota 2:\n");
scanf("%f", &n2);
printf("Digite a nota 3:\n");
scanf("%f", &n3);
printf("Média do aluno: %f", (n1+n2+n3)/3);
return 0;
}
Evidentemente, na Computação estamos interessados em eficiência. Portanto, repetir o código n
vezes não apenas seria inviável, como também não representaria uma boa prática da área.
🧠 Teste seus conhecimentos
Por que repetir trechos de código manualmente, em vez de usar laços de repetição, é considerado uma má prática na programação?
- A
Porque torna o código mais rápido e eficiente.
- B
Porque aumenta a probabilidade de erros e dificulta a manutenção do código.
- C
Porque é a única maneira de garantir que o código será executado corretamente.
- D
Porque isso torna o código mais fácil de entender para outros programadores.
- E
Porque é a única forma de garantir a compatibilidade com diferentes sistemas operacionais.
Para contornar essa limitação, podemos usar estruturas chamadas de laços de repetição.
💡 Conceitos fundamentais
Para começar, estudaremos laços de repetição condicionais. De forma bastante simples, isso significa que a repetição de um trecho de código estará sujeita à análise de uma condição. Como vimos no conteúdo sobre estruturas de seleção, uma condição pode envolver operadores matemáticos, relacionais e lógicos. Veja uma ilustração:
Se a condição analisada for:
👀 Laços infinitos
Ao trabalharmos com laços de repetição, precisamos ter muito cuidado com a criação de um laço infinito (ou loop infinito). Como destacado por André Backes, essa situação acontece nas seguintes situações:
- quando o nosso laço de repetição não tem uma condição de parada;
- quando definimos uma condição de parada que nunca é alcançada.
📖 Bibliografia
Livros
- Backes, A. (2018). Linguagem C - Completa e Descomplicada.