Mobile App Development · Dart/Flutter
O laço for clássico e o for-in para repetir código com controle total sobre início, condição e passo, quando o número de repetições é conhecido de antemão.
Usar o for para repetir blocos de código com controle total de início, condição e passo. Você vai ver o for clássico (com índice), o for-in (para percorrer listas sem se preocupar com índice) e como combinar o laço com break, continue e um acumulador para resolver problemas reais.
for (init; cond; inc)
Estrutura clássica do for: define onde o contador começa, até quando o laço roda e como o contador muda a cada volta.
for (final item in lista)
for-in: percorre cada elemento de uma lista diretamente, sem precisar controlar um índice manualmente.
soma += valor
Padrão de acumulador: uma variável que vai somando (ou multiplicando) um valor a cada iteração até formar um total.
break
Interrompe o laço imediatamente, mesmo que ainda faltem iterações a percorrer.
continue
Pula o restante do corpo na iteração atual e avança direto para a próxima volta do laço.
numero % 2 == 0
O operador módulo (%) testa divisibilidade — é assim que se verifica número par, ímpar ou múltiplo de algo.
texto[i] / texto.length
Uma String pode ser percorrida por índice como uma lista de caracteres; length dá o total de posições.
i * i <= numero
A condição do for pode ser qualquer expressão booleana, incluindo cálculos — útil em algoritmos como teste de primalidade.
// Exemplo: comparar 'for' clássico, 'for-in' e a combinação com 'break'/'continue'.
void main() {
// 'for' clássico: inicialização, condição e incremento controlados manualmente.
var soma = 0;
for (int i = 1; i <= 5; i++) {
soma += i;
}
print('Soma de 1 a 5: $soma');
// 'for-in': percorre uma lista sem precisar de índice nem controlar o incremento.
final notas = [7.5, 9.0, 4.0, 8.5, 6.0];
var aprovados = 0;
for (final nota in notas) {
// 'continue' pula notas abaixo da média sem interromper o laço.
if (nota < 6.0) {
continue;
}
aprovados++;
}
print('Alunos aprovados: $aprovados de ${notas.length}');
// 'break' interrompe o laço assim que a condição de parada é satisfeita.
for (int i = 1; i <= 100; i++) {
if (i * i > 50) {
print('Primeiro quadrado maior que 50: ${i * i}');
break;
}
}
}
Soma de 1 a 5: 15 Alunos aprovados: 4 de 5 Primeiro quadrado maior que 50: 64
nota < 7.0 e veja quantos aprovados restam.for-in para contar quantos elementos de uma lista são negativos.break e continue em um mesmo laço para filtrar e interromper por uma condição.