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:

Representação de estruturas de repetiçã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.