Programació: condicionals

Definició
Els condicionals són estructures de programació que responen a una pregunta o condició. Nosaltres mateixos estem prenent decisions cada dia guiats per sentències condicionals: 
  • Si són les 8, llevat per anar a l'escola!
  • Si s'ha fet fosc, encén el llum!
  • Si el semàfor està vermell, aturat!

En un condicional hi ha sempre una condició o pregunta que es pugui contestar amb CERT o FALS i una o diverses accions que cal fer si la condició es certa. Per programar un condicional...
  1. Pensarem bé la pregunta o condició.
  2. Li direm al programa que volem que faci SI la condició és CERTA.
  3. No és obligatori, però també podem dir-li que volem que faci SI NO és CERTA.
Aquesta és la estructura típica d'un bloc condicional:
SI < Pregunta o condició >
    [Accions a realitzar si és CERT]
SI NO
    [Accions a realitzar si és FALS]

Com treballar amb blocs condicionals a l'Scratch?
 Disposem de diversos blocs amb condicions, però els més importants són el SI i el SI - SI NO:

Com a condicions, podem utilitzar o bé sensors, o bé operadors, col·locant-los dins del lloc adequat. Penseu sempre que esteu fent una pregunta, que s'ha de poder contestar amb CERT o FALS.


Dins del bloc, col·locarem les accions que volem que es realitzin si la condició es compleix (la resposta a la pregunta és CERT). En l'exemple de sota, si premem el botó del ratolí es realitzaran les accions de dins el bloc, i l'Scratch saltarà cap amunt.


Un cop avaluada la condició i realitzades o no les accions, Scratch continua executant els blocs que hi hagi a sota del condicional. Hagi saltat o no, l'Scratch s'esperarà un segon.
 

Si és un bloc SI - SI NO, a la part superior coloquem les accions a realitzar si la condició es compleix (CERT), i a la part inferior les accions a realitzar si no es compleix (FALS). Si el temps és igual a 0, l'Scratch dirà S'ha acabat el temps, si no, dirà Encara queda temps!



Cal destacar que els condicionals s'executen només una vegada, a no ser que estiguin dins d'un bloc PER SEMPRE o REPETEIX, o bé si utilitzem el bloc PER SEMPRE SI. A efectes de programació, els dos conjunts de bloc següents fan el mateix.


Exemples 

Cada cop que cliquem el ratolí, Scratch dirà Clic!



Un ús habitual dels condicionals és controlar l'estat d'una variable i decidir que fer segons el seu valor. Aquí teniu un senzill comptador de temps, que atura el joc si el temps és igual a 0.


En el següent exemple, l'Scratch s'anirà movent, fins trobar una vora, llavors farà mitja volta i seguirà movent-se. Utilizem el sensor tocant vora com a condició del bloc SI. 


En el següent exemple, utilitzem el bloc SI NO, per simular gravetat en una caiguda; si premem el ratolí l'objecte puja, si no, baixa. S'ha afegit també moviment a esquerra i dreta amb blocs SI simples.