11. Switch
In questo capitolo vedremo l'ultima struttura di controllo che ActionScript 3 ci mette a disposizione : la SWITCH.
La SWITCH non prende in considerazione una condizione come abbiamo visto con le altre strutture, ma bensì un valore che andrà poi a confrontare con i casi che troverà, scegliendo il più appropriato.
Volendo potete usare la SWITCH anche con condizioni tradizionali, ma non è spesso la scelta migliore.
Prima di vedere qualche esempio immaginiamo la SWITCH come un blocco IF - ELSE IF, dove i blocchi di codice iniziano con un'istruzione case e finiscono con un'istruzione break.
switch (valore)
{
case "valore 1" :
// inizio blocco di codice
break;
case "valore 2" :
// inizio blocco di codice
break;
default :
// blocco di codice eseguito se non viene soddisfatto alcun caso
}In poche parole il valore fra parentesi tonde che segue lo SWITCH, verrà confrontato con tutti gli altri valori che seguono il comando case, e se nessun valore è uguale a quello specificato allora verrà eseguito il codice del blocco default (se presente).
Vedremo ora un esempio più pratico che può essere eseguito :
var saluto:String;
var lingua:String = new String("italiano");
switch (lingua)
{
case "italiano" :
saluto = "ciao";
break;
case "english" :
saluto "hello";
break;
default :
saluto = "lingua non supportata";
break;
}
trace(saluto); // Output : "ciao"Nell'esempio soprastante la variabile lingua viene confrontata con i casi all'interno dello SWITCH, individuando un uguaglianza soddisfacente nel primo caso, dove lingua viene confrontata con la stringa "italiano". Come accennavo all'inizio, anche con lo SWITCH avremo la possibilità di sfruttare le espressioni condizionali, confrontando poi il risultato con i due valori booleani, ma non è affatto un'alternativa valida. Il punto di forza dello SWITCH è consentire di fare numerosi confronti di uguaglianza mantenendo il codice più ordinato rispetto ad una serie di blocchi IF ELSE. Un'altra prerogativa di questa struttura di controllo è la possibilità di effettuare dei "controlli a cascata", ossia omettendo l'istruzione break in alcuni blocchi, avremo la possibilità di utilizzare lo stesso blocco di codice per due o più confronti. |
Poniamo ad esempio di voler verificare se una variabile a contiene il valore 50, che sia questo un numero intero o una stringa non ci dovrà interessare e li accetteremo entrambi come validi, utilizzando un controllo a cascata :
switch (a)
{
case 50 :
case "50" :
trace("a contiene 50");
break;
default :
trace("a non contiene 50");
break;
}L'output sarà "a contiene 50" nei seguenti casi :
var a:int = 50;
var a:String = "50";
- Linguaggi:
- Tags:

