Ciklus
[DO] WHILE ConditionExp
…
[LOOP]
[EXIT]
END[DO]
FOR Var := InitExp TO EndExp [STEP StepExp]
…
[LOOP]
[EXIT]
NEXT
FOR EACH Var IN CollectionExp
…
[HB_EnumIndex()]
[LOOP]
[EXIT]
NEXT
- A „…” egy vagy több utasítás szekvenciája
- A kapcsos zárójelek jelölik az opcionális szintaxist.
- HB_EnumIndex() az egytől induló iterációs indexszel tér vissza.
- A Loop utasítás az éppen folyamatban lévő ciklusiterációt indítja újra. Ha a ciklus FOR vagy FOR EACH, akkor növeli az iterátort.
- Az EXIT utasítás azonnal terminálja a folyamatban lévő ciklust.
- A NEXT utasítás a következő iterációba lép.
A FOR ciklusban az értékadó utasítás ez első iteráció előtt kerül kiértékelésre.
A TO kifejezés minden iteráció előtt kiértékelődik és összehasonlításra kerül az ellenőrző változó értékével.
Ezután a ciklus akkor terminál, ha a kiértékelt változó numerikus értéke nagyobb az ellenőrző változóénál.
A választható STEP kifejezés minden iteráció után kiértékelődik, még mielőtt eldőlne, hogy végrehajtódik-e a következő iteráció.
A FOR EACH-en belül a Var változó a collection-ből a megfelelő elem értékét veszi fel (lehet skalár is, komplex is).
A collection kifejezés lehet tömb (tetszőleges, vagy akár kombinált típusú), hash vagy objektum típusú.
If elágazás
IF CondExp
…
[ELSEIF] CondExp
…
[ELSE]
…
END[IF]
A „…” nulla vagy több utasítást jelöl.
A kondíciós kifejezésnek kiértékelés után logikai típusúnak kell lennie.
Switch elágazás
SWITCH SwitchExp
CASE LiteralExp
…
[EXIT]
[CASE LiteralExp]
…
[EXIT]
[DEFAULT]
…
END
- A LiteralExp-nek egy fordítási időben kiértékelhető numerikus kifejezésnek kell lennie. Tartalmazhat operátorokat, amennyiben az operátorok fordítási idejű statikus értéket tartalmaznak.
- Az EXIT egy választható utasítás, teljes mértékben megfelel a C-ből ismert break-nek. Jelen esetben tehát a SWITCH struktúra leáll, ahogy eléri az EXIT utasítást, egyébként pedig folytatná a soronkövetkező utasítások (CASE) végrehajtását.