A Boo programozási nyelv

Utasítások, vezérlési szerkezetek

Értékadás

A Boo-ban minden object típusú, nincsenek pointerek. Minden referencia, az értékadások is referencia szerint történnek.

Elágazás

Olyan feltételes elágazás, melynek lehetséges több ága közül csak az hajtódik végre mindig, amelyre igaz a feltétel. Az if segítségével többszörös mélységű feltételfákat járhatunk be és mindig annak a blokknak a végrehajtása kezdődik meg, amelyik feltétele igaz lesz. Azaz egymásba ágyazhatók az if feltételek.

i = 5 if i == 5: print "i is equal to 5."

i is equal to 5.

Fontos megjegyzés: nem mindegy, hogy mit használunk, hiszen:
A feltétel során használhatóak:

operátorok.

A Boo nem használ semmilyen speciális jelölést arra, hogy az if, vagy egyáltalán bármilyen kódblokkot megkülönböztessen. Más nyelvek, {}-t, then - endif, do-end, el jelölik a blokkokat, a Boo viszont csak "margószabályt" használ, semmi mást. Ezért mindig használjunk TAB-ot indentelésre!!!!
Ez egyébként a Python-tól ered.
i = 5 if i > 0: print "i is greater than 0." if i < 10: print "i is less than 10." if i > 5: print "i is greater than 5."

i is greater than 0.
i is less than 10.

Boo-ban van még else és elif kulcsszavunk is. Ha az if feltétele nem igaz, és van else ág, akkor az fog végrehajtódni.
Elif: ha az if feltétele nem igaz, akkor ezt azt újat vizsgálja. (Több elif is lehet.)
Unless: jól használható módja annak, hogy megvizsgáljuk: a feltétel nem igaz.
Megj.: csak a jól olvashatóság kedvéért létezik. Jó példa rá egy elöltesztelős ciklus írása Boo-ban.

i = 5 unless i == 5: print "i is equal to 5."


Not: Feltétel tagadása.
Feltételeket össze lehet kapcsolni a logikai operátorok segítségével, és zárójelezni is lehet őket, sőt függvény is lehet feltételben.

Ciklus

A ciklus törzsének többszöri végrehajtása.
A for ciklus a Boo-ban nem a szokásos for ciklusra hasonlít, mint C vagy C#-ban, sokkal inkább foreach jelleget ölt. A for leggyakoribb használata a range-el együtt történik.
A range függvény számsorozatokkal tér vissza, a join pedig sztringet készít belőle.
Példa:

join(range(5)) join(range(3, 7)) join(range(0, 10, 2))

0 1 2 3 4
3 4 5 6
0 2 4 6 8

Egy for ciklusban nagyon egyszerűen lehet használni.
for i in range(5): print i

0
1
2
3
4

Hasonlóan gyors, mint a C#, mert a Boo sem hoz létre, egy ilyen hosszúságú tömböt a memóriában, inkább gyorsan, valós időben számítja ki az értéket.

While ciklus = Amíg a ciklus feltétele igaz, a törzse mindannyiszor végrehajtódik.
A while nagyban hasonlít az if-hez, annyi különbséggel, hogy nem 1-szer, hanem többször hajtódik végre a törzse.
i = 0 while i < 5: print i i += 1

0
1
2
3
4


A CONTINUE kulcsszó segítségével folytathatjuk a program végrehajtását az aktuális ciklus végétől.
A While-Break-Unless ciklus nagyon hasonló más nyelvek do-while elöltesztelő ciklusához
i = 10 while true: print i i -= 1 break unless i < 10 and i > 5

10
9
8
7
6
5


A pass kulcsszó segítségével megszakíthatjuk a vezérlést, és billentyűleütésre folytathatjuk csak.(ctrl+c program vége). Nagyon hasznos debuggolásnál.