É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:
- 1. i = 5 értékadás, nem ad logikai értéket. DE! warning-ot dob rá.
- 2. i == 5 helyes
A feltétel során használhatóak:
- == egyenlő
-
< kisebb
- > nagyobb
-
<=k isebb vagy egyenlő
- >= nagyobb vagy egyenlő
- != nem egyenlő
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.