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)
Exemplos
Exemplo 01: Validação de entrada comwhile
#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;
}