Estruturas de Repetição

Estruturas de repetição (ou loops) são blocos de código que executam uma ação várias vezes uma condição for verdadeira. Elas são usadas para:
  • Evitar repetição manual de código.
  • Processar listas de dados (vetores, matrizes, etc.).
  • Criar menus interativos ou validar entradas.

Tipos e Quando Usar

  • while Quando não se sabe quantas iterações serão necessárias.
  • do... while Quando o bloco deve executar pelo menos uma vez, mesmo se a condição for falsa.
  • for Quando sabe-se o número exato de iterações (ex.: percorrer um vetor)
Iteração: É o ato de repetir uma determinada função, por um determinado espaço de tempo ou até uma condição ser alcançada.

Exemplos

Exemplo 01: Validação de entrada com while

#include <stdio.h>
int main() {
// Variáveis 
int numero; 

// Entrada de dados 
printf("Digite um número positivo: "); 
scanf("%i", &numero); 

// Processamento/Saída de dados 
while (numero <= 0) { // Repete até que a condição seja falsa 
    printf("Inválido! Digite novamente: "); 
    scanf("%i", &numero); 
} 

printf("Número válido: %d\n", numero); 
return 0; 
}


Exemplo 02: Menu interativo com do...while

#include <stdio.h>

int main() {
// Variáveis 
char opcao;

// Entrada de dados 
do {
    printf("\nMenu:\n1 - Salvar\n2 - Sair\nEscolha: "); 
    scanf(" %c", &opcao); // Espaço antes do %c para ignorar quebras de linha 

    // Processamento/Saída de dados 
    switch (opcao) {
        case '1': printf("Salvando...\n"); break;
        case '2': printf("Saindo...\n"); break;
        default: printf("Opção inválida!\n");
    }
} while (opcao != '2'); // Repete até o usuário escolher '2'

return 0;
}


Exemplo 03: Contagem regressiva com for

#include <stdio.h>

int main() {
    for (int i = 10; i >= 0; i--) { // Inicia em 10, decrementa até 0
        printf("%d\n", i);
    }
    printf("Fogo!\n");
    return 0;
}

Exercícios

Exercício 01: Peça ao usuário que digite uma senha. Enquanto a senha digitada estiver incorreta (ex: 1234), o programa deve pedir novamente.
Quando o usuário digitar a senha correta, o programa mostra: "Acesso permitido". Utilize do...while para realizar esta tarefa.


#include <stdio.h>
#include <string.h>

int main() {
    char senha[10];

    do {
        printf("Digite a senha: ");
        scanf("%s", senha);
    } while (strcmp(senha, "1234") != 0);

    printf("Acesso permitido\n");
    return 0;
}

Exercício 02: Peça ao usuário para digitar um número inteiro. Mostre a tabuada desse número, de 1 até 10.
Com base no conteúdo apresentado, utilize a melhor estrutura de repetição para esta tarefa.


#include <stdio.h>

int main() {
    int numero;

    printf("Digite um número inteiro: ");
    scanf("%d", &numero);

    for (int i = 1; i <= 10; i++) {
        printf("%d x %d = %d\n", numero, i, numero * i);
    }

    return 0;
}
Próximo