Ja coneixeu els conceptes bàsics de les instruccions individuals i que un programa és només una sèrie d’instruccions. Però la força real de la programació no és només executar instruccions una rere l’altra, com una llista d’encàrrecs de cap de setmana. Segons l’avaluació de les expressions, un programa pot decidir ometre instruccions, repetir-les o triar una de les diverses instruccions per executar-la. De fet, gairebé mai voldreu que els vostres programes comencin des de la primera línia de codi i simplement executin totes les línies, fins al final. Les instruccions de control de flux poden decidir quines instruccions executar en quines condicions.
Aquestes declaracions de control de flux corresponen directament als símbols d’un diagrama de flux. La figura següent mostra un diagrama de flux de què fer si plou. Seguiu el camí que fan les fletxes de principi a fi:
En un diagrama de flux, normalment hi ha més d’un camí per recórrer des del principi fins al final. El mateix passa amb les línies de codi d’un programa d’ordinador. Els diagrames de flux representen aquests punts de ramificació amb rombes, mentre que els altres passos es representen amb rectangles. Els passos inicial i final es representen amb rectangles arrodonits.
Les estructures de control sovint comencen amb una part anomenada condició i sempre van seguides dels blocs de codi a executar.
Condicions: són expressions que sempre s’avaluen fins a un valor booleà, cert o fals. Una declaració de control de flux decideix què fer en funció de si la seva condició és True o False i gairebé totes les estructures de control utilitzen una condició.
Blocs de codi: Els blocs de codi que s'executaran si la condició és certa o no.
Els blocs de les estructures de control es troben a l'apartat Control de l'editor de blocs, i els blocs per elaborar les expressions booleanes (les condicions) es troben agrupats a l'apartat Logic.
L'estructura de control més utilitzada és la if - else - else if.
A través de la rodeta de la part superior esquerra del bloc podem ajustar la configuració del bloc que volem.
Normalment utilitzarem la configuració bàsica if, on els blocs de codi s'executaran si la condició és certa i s'ometran en cas que sigui falsa.
O la configuració if - else on, quan la condició sigui falsa s'executaran els blocs de codi de else.
A dins de la secció Control trobem altres blocs que ens permeten controlar el flux d'execució del programa que en general no són tant utilitzats però ens poden ser útils en determinats casos:
Amb la funcionalitat Timers, a l'editor de blocs, podem controlar el temps i, per tant, el comportament de l'aplicació. No és una estructura de control com les vistes en l'apartat anterior, però també ens pot servir per controlar l'execució de codi, en aquest cas en funció del temps.
Quan creem un Timer, en podem crear diversos, ens demana una sèrie de propietats inicials que després podrem modificar (amb set):
Interval -> Defineix cada quant temps s'ha d'executar l'esdeveniment whenTimer.fires. Pot ser en segons o en mil·lisegons.
CountUp ->
Loops -> Si volem que l'esdeveniment no s'executi només una vegada, que es vagi executant reiteradament.
Enable ->
Cada temporitzador només té un bloc d'esdeveniment, whenTimer.fires que executarà els blocs que hi posem a dins cada cop que passi el període de temps que li hem fixat.
Crea una app on l'usuari tingui 5 segons per resoldre una operació matemàtica. Si l'encerta s'ha de sentir un missatge felicitant el jugador, si falla o s'acaba el temps un missatge animant-lo a tornar-ho a intentar i el temps ha de tornar a començar.
Pots mostrar l'operació matemàtica en forma de text, amb un label, o amb una imatge. Per tal que el jugador introdueixi la seva resposta utilitza el component Text Input i els esdeveniments whenText_Input.Submit o whenText_Input.Unfocus per programar què ha de passar un cop l'usuari hagi entrat la resposta.