Mobile App Development · Dart/Flutter

10 · For

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.

1Objetivo da aula

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.

2O que vamos aprender

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.

3Exemplo comentado

// 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;
    }
  }
}

4Saída esperada

Soma de 1 a 5: 15
Alunos aprovados: 4 de 5
Primeiro quadrado maior que 50: 64

5Do conteúdo para a prática

6Prática sugerida