[Guida Flash]: I Cicli


Dopo aver parlato degli Array nella lezione precedente, oggi parliamo dei cicli, di cosa sono, a che servono, e faremo i soliti esempi (in cui vedremo come leggere gli array con un ciclo).

Cos’è un Ciclo e a cosa Serve?

Un Ciclo è un istruzione di ActionScript che permette di eseguire un blocco di codice ripetutamente finché non si verifica una certa condizione.

Quanti Tipi di Ciclo ci sono?

Abbiamo a disposizione 4 tipi di cicli tra cui scegliere in base alle nostre esigenze, e sono:


For (il più usato)

While

Do…While

For…In

Vediamoli uno ad uno, e spieghiamo come funzionano,e come e quando  si devono usare!

Il Ciclo For:

Il ciclo “for” è il più semplice come logica ed anche il più usato come ho accennato prima.

Un esempio di codice per un ciclo for è il seguente:

for(var i:Number = 0; i < 10; i++)
{
trace(i);
}

Come potete vedere viene dichiarato il ciclo for e in una parentesi tonda vengono inseriti 3 parametri:

Il primo è la dichiarazione della variabile che fungerà da contatore (in questo caso si chiama “i”, ovviamente di tipo numerico e si partirà dal valore “0” ).

Il secondo è la condizione fino alla quale il blocco di istruzione verrà eseguito, quindi quando la condizione risulterà falsa, il ciclo si fermerà (in questo caso, il codice verrà eseguito finchè la variabile “i” non assumerà o supererà il valore 10)

Il terzo parametro incrementa la variabile “i”, in questo caso di uno (i++ è come se fosse i = i + 1)

Infine abbiamo un blocco di istruzioni racchiuso tra 2 parentesi graffe, in questo caso un trace che stamperà il valore della variabile contatore “i”.

In questo esempio come risultato del trace avremo:

0
1
2
3
4
5
6
7
8
9

Non abbiamo in elenco il valore 10 perchè nella condizione abbiamo specificato che a partire da 0 (compreso) dobbiamo eseguire il ciclo finchè la variabile “i” sarà minore del valore 10, quindi fino a 9.

Tutto il codice inserito dopo il ciclo, verrà eseguito non appena la condizione dello stesso risulterà vera, quindi inserendo un trace dopo il ciclo for, verrà stampato prima tutto l’elenco dei numeri che ci verrà restituito (da 0 a 9 come abbiamo visto poco fa), e dopo verrà eseguito il trace che sta dopo il ciclo.

Un esempio con gli Array:

var colori:Array=new Array(‘bianco‘,’nero‘,’rosa‘,’blu‘,’grigio‘,’verde‘,’rosso‘);
for(var n:Number=0; n < colori.length; n++)
{
trace(colori[n]);
}

In questo caso verranno visualizzati tutti i valori dell’array colori.

Il Ciclo While:

Il ciclo while è un pò diverso, sia come sintassi e sia come logica di funzionamento.

Un esempio può essere:

var j:Number = 0;
while(j < 10)
{
trace(j);
j++;
}

Come possiamo vedere dall’esempio, la variabile di controllo “j” è dichiarata con valore 0 (numerico) fuori dal ciclo while.

La sintassi di questo ciclo sta nel dichiarare il ciclo con la parola while seguita dalla condizione di controllo racchiusa in parentesi tonde (in questo caso j dev’essere minore di 10).

Il While controllerà subito la condizione (j è minore di 10), e solo se sarà vera verrà eseguito il blocco di codice tra parentesi graffe (in questo caso il trace del contatore, e l’incremento del contatore “j”)

Affinchè il ciclo non vada in loop bisogna inserire tra le parentesi graffe, l’incremento della variabile di controllo “j”. Andare in loop significa che il ciclo verrà eseguito all’infinito e il flash crasherà inesorabilmente!

Il risultato di questo ciclo è uguale al for che abbiamo visto prima!

Il Ciclo Do…While:

Il ciclo do…while è come un ciclo while ma con logica inversa, ovvero la condizione di controllo viene controllata alla fine del ciclo e non all’inizio.

Un esempio può essere:

var k:Number = 0;
do
{
trace(k);
k++
}
while(k < 10);

Come si può vedere la variabile è dichiarata prima come nel while, dopo-di-ché compare la parola do seguita dalle parentesi graffe che conterranno il blocco di istruzioni e l’incremento della variabile (che in questo caso è “k”).

Dopo la chiusura della parentesi graffa, abbiamo la keyword while seguita dalla condizione tra parentesi tonde.

Quali sono le Differenze tra While e Do…While?

Semplice, il ciclo Do…While, ci assicura che il blocco di istruzioni tra parentesi graffe verrà eseguito almeno una volta indipendentemente dalla condizione da noi settata, proprio perchè tale condizione verrà controllata alla fine del ciclo, ovvero dopo aver eseguito il codice per la prima volta.

Il Ciclo For…In:

Il ciclo for…in permette di navigare tra gli elementi di un array, o tra le proprietà di un oggetto.

Un esempio può essere:

var oggetto:Object = new Object();
oggetto.nome = ‘stefano‘;
oggetto.cognome = ‘venneri‘;
oggetto.sesso = ‘maschio‘;
oggetto.paese = ‘crotone‘;

for (var p in oggetto)
{
trace(p + “: ” + oggetto[p]);
}

In questo caso abbiamo un oggetto, con le proprietà nome, cognome, sesso e paese ed i rispettivi valori assegnati.

Con il ciclo For…In, per ogni proprietà dell’oggetto, viene eseguito il codice tra parentesi graffe.

La sintassi prevede la dichiarazione del ciclo con la parola for, seguita dalla dichiarazione di una variabile che nel blocco di istruzioni, prenderà il valore pari al nome della proprietà dell’oggetto, dopo-di-ché avremo la keyword “in” seguita dall’oggetto o dall’array in questione.

Quindi facendo un trace sulla variabile p, avremo come risultato al primo giro “nome”, al secondo “cognome”, ecc… invece facendo un trace passando la variabile p come parametro dell’oggetto, avremo come risultato i rispettivi valori delle proprietà.

Eseguendo il codice prima proposto avremo:

paese: crotone
sesso: maschio
cognome: venneri
nome: stefano

Lo stesso discorso vale se si opera su un array invece che su di un oggetto.

Per questa lezione è tutto, grazie per avermi seguito…. Alla Prossima! 😉



2 Commenti

  1. StefanoV ha detto:

    Grazie, sto facendo la guida completa ad actionscript 2.0 base…poi passo ad AS 3.0 😉

  2. ThE_RaY ha detto:

    Ottima stefano! ben spiegata…alla fine su questi concetti si basa il mondo xD

Lascia un commento a ThE_RaY

%d blogger hanno fatto clic su Mi Piace per questo: