Pular para o conteúdo

5. Repetir

cycle para contar e percorrer, persist para repetir enquanto for verdade.

Repetir é a razão de existir do computador: ele faz a mesma coisa mil vezes sem cansar e sem errar. Há duas formas, e a escolha é a pergunta que você está fazendo.

PerguntaUse
“faça isto para cada número de 1 a 10”cycle i from 1 to 10
“faça isto para cada item da lista”cycle item in lista
“faça isto enquanto for verdade”persist condicao
dataforge
// A tabuada do 7 — 'from ... to' inclui as DUAS pontas.
cycle i from 1 to 10:
    out $"7 x {i} = {7 * i}"

// Somar uma lista, item por item.
total := 0
cycle preco in [10, 25, 7]:
    total += preco
assert total is 42

// Dobrar ate passar de 1000.
n := 1
passos := 0
persist n smaller 1000:
    n := n * 2
    passos += 1
out $"{passos} dobras: {n}"
assert n is 1024

Parar antes, ou pular#

dataforge
// 'halt' sai do laco; 'skip' pula para a proxima volta.
primeiro_par := void
cycle n in [7, 3, 8, 5, 10]:
    given n % 2 isnt 0:
        skip
    primeiro_par := n
    halt
assert primeiro_par is 8

Próximo: 6. Listas e vaults.