Repeats a block while a condition remains true.
Aliases: while
Syntax: dum <condition> <block|ergo statement>
Category
control-flow
Related
Examples
examples/corpus/dum/dum.fab (canonical · keyword)
Repeats a block while a condition remains true.
# dum — while loop
#
# dum <condition> { <body> }
#
# GRAMMAR:
# loopStmt :← 'dum' expr '{' stmt* '}'
#
# EXPECTED OUTPUT:
# dum.expected
incipit {
# Ascending counter: varia so the loop variable can mutate
varia numerus computus ← 0
dum computus < 5 {
nota computus
computus ← computus + 1
}
# Descending loop: condition becomes falsum at 0
varia numerus reliquum ← 3
dum reliquum > 0 {
nota "reliquum: §"(reliquum)
reliquum ← reliquum - 1
}
nota "perfectum!"
}Expected output:
0
1
2
3
4
reliquum: 3
reliquum: 2
reliquum: 1
perfectum!