Laços: for, while e do-while
Laços executam o mesmo bloco várias vezes. for serve para um número conhecido de passos, while repete até a condição falhar e do-while sempre executa o corpo pelo menos uma vez.
O que é Laços: for, while e do-while?
Laços executam o mesmo bloco várias vezes. for serve para um número conhecido de passos, while repete até a condição falhar e do-while sempre executa o corpo pelo menos uma vez.
Repita tarefas com os laços for, while e do-while, além de break e continue.
Pontos importantes
- Ative os avisos do compilador e corrija todos.
- Conheça o tipo e o lifetime de cada valor.
- Valide entradas e limites de arrays.
Veja como funciona
Clique em Passo para executar o laço um passo de cada vez. Veja a condição sendo verificada, o corpo sendo executado e a tabela de rastreio crescendo linha a linha.
Exemplos de código C e C++
#include <stdio.h>
int main(void) {
/* for: start; condition; step */
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}
printf("\n");
/* while: repeat as long as the condition holds */
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
printf("halved %d times\n", steps);
/* do-while: the body runs at least once */
int tries = 0;
do {
tries++;
} while (tries < 3);
printf("tries = %d\n", tries);
/* break leaves the loop, continue skips to the next round */
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue;
if (i > 7) break;
printf("%d ", i);
}
printf("\n");
return 0;
}
1 2 3 4 5
halved 4 times
tries = 3
1 3 5 7
#include <iostream>
#include <vector>
int main() {
// for: start; condition; step
for (int i = 1; i <= 5; i++) {
std::cout << i << ' ';
}
std::cout << '\n';
// while: repeat as long as the condition holds
int n = 20;
int steps = 0;
while (n > 1) {
n /= 2;
steps++;
}
std::cout << "halved " << steps << " times\n";
// do-while: the body runs at least once
int tries = 0;
do {
tries++;
} while (tries < 3);
std::cout << "tries = " << tries << '\n';
// range-based for visits every element of a container
std::vector<int> values{1, 3, 5, 7};
int sum = 0;
for (int value : values) {
sum += value;
}
std::cout << "sum = " << sum << '\n';
}
1 2 3 4 5
halved 4 times
tries = 3
sum = 16
Comparação entre C e C++
O cabeçalho do for tem o início, a condição e o passo. break sai do laço antes e continue pula para a próxima volta. C++ adiciona o for baseado em intervalo, que percorre cada elemento de um contêiner sem índice.
C expõe APIs procedurais pequenas e detalhes de representação.
C++ preserva o modelo de baixo nível e adiciona tipos mais seguros.
Exercícios práticos
Execute as duas versões e modifique-as para observar suas garantias.
- Adicione entradas inválidas e valores limite.
- Compile com -Wall -Wextra -Wpedantic.
- Separe declarações e implementação.
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
- Sum of Odd Numbers Add every odd number up to a limit. Fácil
- Countdown to Liftoff Count down from a number and end with Liftoff! Fácil
- Linha da Tabuada Liste os primeiros múltiplos de um número. Fácil