Usina BRAdvPL Guia · Treinamento
← Voltar à trilha
CONTROLE DE FLUXO · AULA 04

Repetições previsíveis com FOR...NEXT

Aprenda a controlar repetições, percorrer arrays e escolher limites seguros em AdvPL.

7 etapasAté 65 pontosProgresso salvo neste navegador
Etapa 1

Objetivos da aula

+5 XP

Ao concluir esta aula, você deverá conseguir:

  • Reconhecer quando usar FOR...NEXT
  • Definir início, limite e incremento
  • Percorrer todos os elementos de um array
  • Usar STEP positivo e negativo
  • Evitar alterações perigosas no contador
  • Diferenciar FOR de WHILE
Etapa 2

Entenda o conceito

+5 XP
FOR...NEXT executa um bloco repetidamente, controlando uma variável numérica. É indicado quando os limites da repetição podem ser determinados antecipadamente.
exemplo-for.prw
User Function ExContagem()
    Local nContador

    For nContador := 1 To 5
        ConOut("Execução: " + cValToChar(nContador))
    Next nContador
Return

O contador é criado antes da repetição, recebe o valor inicial e é atualizado automaticamente a cada passagem.

Etapa 3

Anatomia da sintaxe

+5 XP
For nContador := 1 To 5 Step 1
    // instruções repetidas
Next nContador
Clique em uma parte da sintaxe para ver sua função.
Etapa 4

Simulador passo a passo

+10 XP
ITERAÇÃO ATUAL
1/ 5
1 <= 5 → .T.

Executa o bloco e mostra “Execução: 1”.

PassoContadorCondiçãoAção
Etapa 5

Exemplos aplicados

+5 XP
User Function ExContagemPares()
    Local nNumero

    For nNumero := 2 To 10 Step 2
        ConOut("Número par: " + cValToChar(nNumero))
    Next nNumero
Return

STEP 2 faz o contador avançar de dois em dois: 2, 4, 6, 8 e 10.

User Function ExListaProdutos()
    Local aProdutos := {"Produto A", "Produto B", "Produto C"}
    Local nProduto

    For nProduto := 1 To Len(aProdutos)
        ConOut(aProdutos[nProduto])
    Next nProduto
Return

Len(aProdutos) mantém o limite alinhado à quantidade atual de elementos.

Etapa 6

Exercício orientado

+15 XP

Complete o código para mostrar uma contagem regressiva de 10 até 1.

For nNumero :=ToStep
Etapa 7

Questionário final

+20 XP