Istruzioni condizionali

ActionScript 3.0 offre tre istruzioni condizionali di base che possono essere utilizzate per controllare il flusso del programma.

if..else

L'istruzione condizionale if..else consente di provare una condizione e quindi eseguire un blocco di codice se la condizione è soddisfatta o un blocco di codice alternativo in caso contrario. Il codice seguente, ad esempio, verifica se il valore di x è maggiore di 20 e genera un'istruzione trace() in caso affermativo oppure un'istruzione trace() diversa in caso negativo.

if (x > 20) 
{ 
    trace("x is > 20"); 
} 
else 
{ 
    trace("x is <= 20"); 
}

Se non si desidera eseguire un blocco di codice alternativo, è possibile utilizzare l'istruzione if senza l'istruzione else.

if..else if

L'istruzione condizionale if..else if permette di provare più di una condizione. Il codice seguente, ad esempio, non solo controlla se il valore di x è maggiore di 20, ma anche se è negativo:

if (x > 20) 
{ 
    trace("x is > 20"); 
} 
else if (x < 0) 
{ 
    trace("x is negative"); 
}

Se un'istruzione if o else è seguita da un'unica istruzione, non è necessario racchiuderla tra parentesi graffe. Il codice seguente, ad esempio, non utilizza le parentesi graffe:

if (x > 0) 
    trace("x is positive"); 
else if (x < 0)  
    trace("x is negative"); 
else 
    trace("x is 0");

Adobe tuttavia consiglia di includere sempre le parentesi graffe per evitare risultati imprevisti nel caso che in un secondo momento vengano aggiunte altre istruzioni a un'istruzione condizionale priva di parentesi graffe. Ad esempio, nel codice seguente il valore di positiveNums viene incrementato di 1 indipendentemente dal fatto che la condizione restituisce o meno il valore true:

var x:int; 
var positiveNums:int = 0; 
 
if (x > 0) 
    trace("x is positive"); 
    positiveNums++; 
 
trace(positiveNums); // 1

switch

L'istruzione switch è utile quando sono presenti vari percorsi di esecuzione che dipendono dalla stessa espressione condizionale. Fornisce funzionalità simili a una lunga serie di istruzioni if..else if, ma è più semplice da leggere. Anziché verificare se una condizione ha un valore booleano, l'istruzione switch valuta un'espressione e usa il risultato per determinare quale blocco di codice deve essere eseguito. I blocchi di codice iniziano con un'istruzione case e terminano con un'istruzione break. Ad esempio, l'istruzione switch seguente genera il giorno della settimana in base al numero del giorno restituito dal metodo Date.getDay():

var someDate:Date = new Date(); 
var dayNum:uint = someDate.getDay(); 
switch(dayNum) 
{ 
    case 0: 
        trace("Sunday"); 
        break; 
    case 1: 
        trace("Monday"); 
        break; 
    case 2: 
        trace("Tuesday"); 
        break; 
    case 3: 
        trace("Wednesday"); 
        break; 
    case 4: 
        trace("Thursday"); 
        break; 
    case 5: 
        trace("Friday"); 
        break; 
    case 6: 
        trace("Saturday"); 
        break; 
    default: 
        trace("Out of range"); 
        break; 
}