10. Strutture di controllo
In questa lezione vedremo le strutture di controllo che ActionScript 3 ci mette a disposizione.
Per struttura di controllo intendo quei costrutti del linguaggio che ci consentono di eseguire determinate operazioni solo al verificarsi di una precisa condizione.
La condizione dovrà essere un'espressione e non dovrà necessariamente produrre un risultato booleano, poichè sarà la struttura di controllo ad effettuare una conversione implicita a questo tipo di dato.
Anche ActionScript, come la stragrande maggioranza dei linguaggi, ci propone le solite 4 strutture :
|
La IF è senz altro la struttura più utilizzata, su cui si basano anche la ELSE e la ELSE IF, che per essere utilizzate devono obbligatoriamente avere un blocco IF a cui fare riferimento per la condizione iniziale, ma vediamo qualche esempio :
var a:int = 5;
var b:int = 10;
if (a < b) trace("a è minore di b");
else if (a > b) trace("a è maggiore di b");
else trace("a è uguale a b");Nell'esempio soprastante l'output prodotto è "a è minore di b", ma assegnando valori diversi ad a e b potrete osservare la reazione delle varie strutture.
Di seguito un blocco in pseudo codifica equivalente per illustrare meglio il funzionamento dell'esempio precedente :
SE (a è minore di b) trace("a è minore di b);
ALTRIMENTI SE (a è maggiore di b) trace("a è maggiore di b);
ALTRIMENTI /* in tutti gli altri casi quindi */ trace("a è uguale a b);Se queste tre strutture viste finora dovessero contenere più di un'istruzione da eseguire, allora è necessario includere tutte le istruzioni della struttura in un blocco delimitato da 2 parentesi graffe :
var a:int = 5;
var b:int = 10;
if (a < b)
{
a = b;
trace("a è minore di b");
}
else if (a > b)
{
b = a;
trace("a è maggiore di b");
}
else
trace("a è uguale a b");Nel codice soprastante abbiamo visto come, sia la IF che la ELSE IF, racchiudano le loro istruzioni con delle parentesi graffe, che non sono invece utilizzate dalla ELSE che contiene solamente un'istruzione trace. Il linguaggio inoltre ci consente di usare una IF singolarmente, cosa che non può avvenire per le antagoniste ELSE ed ELSE IF che genereranno un errore se non verrà trovata una IF iniziale a cui fare riferimento. Come dicevo all'inizio, spesso le condizioni saranno delle espressioni composte da un singolo operando, e qualora non fornissero un risultato booleano, sarà la struttura stessa ad effettuare una conversione implicita. Ad esempio un numero intero maggiore di zero può rappresentare una condizione vera, così come una stringa formata da uno o più caratteri o ancora un oggetto correttamente inizializzato e quindi diverso da null : |
var numero:int = 0;
if (numero)
trace("numero è maggiore di zero");
else
trace("numero non è maggiore di zero");Output : "numero non è maggiore di zero"
var stringa:String = "";
if (stringa)
trace("La stringa contiene uno o più caratteri");
else
trace("La stringa è vuota");Output : "La stringa è vuota"
Nel prossimo capitolo illustrerò l'ultima struttura di controllo : la SWITCH.
- Linguaggi:
- Tags:

