Tutorial 9 - Creació d'un joc (I)
Pas 10 de 26
Ara que hem provat que el trace
funciona, i que la nau no mostra el rectangle del focus, procedirem a substituir el trace
per les sentències que volem executar.
Volem avaluar quina fletxa s'ha premut, i executar accions diferents segons si s’ha premut una fletxa o una altra. Per a aquest tipus de problemes és molt útil una sentència anomenada switch
.
Per comprendre aquesta sentència, suposem el cas d'un test amb respostes a, b i c:
switch (answer)
{
case a :
trace("the user has chosen a");
break;
case b :
trace("the user has chosen b");
break;
case c :
trace("the user has chosen c");
break;
default :
trace("ha ocurrido un error");
}
El que la sentència switch
faria en aquest cas és avaluar answer
(variable que hi ha entre parèntesis).
En cas que la resposta fos per exemple b
, s'analitzaran els casos fins a trobar-ne un que sigui correcte (case b
), i llavors s'executaran les sentències que hi hagi dins d'aquest case
(en aquest cas un trace
(que informa que s'ha respost b), i ja no es revisaran els altres casos (break
).
Cada case
ha d'acabar sempre amb una sentència break
perquè s'ometi la resta de la sentència switch
quan trobem un case
correcte. Així evitem que comprovi la resta dels casos.
Si no hi ha cap case
correcte, llavors s'executarà el que s'indiqui a default
. Aquí les úniques respostes possibles són a
, b
o c
, per la qual cosa si answer
és qualsevol altra cosa, hem programat un trace
que indiqui que hi ha hagut un error. Aquí no faria falta un break
.
Sempre és convenient incloure default
, encara que no prevegem que hagi de passar res fora dels case
.
És important no oblidar que aquesta sentència també té les seves pròpies claus a l'inici i al final.