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; 
}