12. Cicli
I cicli sono costrutti del linguaggio particolari, che ci consentono di ripetere un determinato blocco di codice per un numero noto di volte o finchè una specifica condizione risulta vera.
Sono spesso usati per scorrere gli elementi di un array o le proprietà di un oggetto, consentendo quindi di sfruttare appieno le potenzialità di questi tipi di dato.
ActionScript 3 ci mette a disposizione ben 5 cicli :
|
Ciclo for
Il ciclo for prende tre argomenti, tutti facoltativi.
Omettendo la condizione sarà come specificarne una sempre vera, dando vita ad un ciclo infinito.
Vediamo quali sono questi tre parametri e in cosa consistono :
for (assegnazione; condizione; successivo)
{
// codice da ripetere
}- Assegnazione - Questo parametro è un'istruzione di assegnazione che verrà eseguita subito di cominciare le iterazioni
- Condizione - Il ciclo sarà interrotto quando questo parametro produrrà il valore booleano false (condizione non vera)
- Successivo - Il parametro in questione è un'istruzione di assegnazione che verrà eseguita alla fine di ogni iterazione
Esempio for
var output:String = new String();
var frutti:Array = new Array("Mela", "Pera", "Banana");
for (var i:int = 0; i < frutti.length; i++)
{
output += frutti[i];
if (i + 1 < frutti.length)
output += " - ";
}
trace(output); // Output : "Mela - Pera - Banana"Ciclo for in
Il ciclo for in viene usato per iterare automaticamente array e oggetti, prendendo due argomenti separati dalla parola chiave in.
for (iteratore in oggetto)
{
// codice da ripetere
}- Iteratore - Questo parametro viene chiamato variabile d'iterazione è conterra l'indice o la chiave se iteriamo un array o il nome della proprietà se iteriamo un oggetto
- Oggetto - L'oggetto o l'array da iterare
Esempio for in
var frutti:Array = new Array("Mela", "Pera", "Banana");
for (var i in frutti)
trace((i + 1) + ". " + frutti[i]);Output :
1. Mela 2. Pera 3. Banana
Ciclo for each in
for each in differisce dal ciclo for in per come gestisce la variabile d'iterazione, memorizzando in essa direttamente il valore dell'elemento, se iteriamo un array, o il valore della proprietà se iteriamo un oggetto.
for each (iteratore in oggetto)
{
// codice da ripetere
}Esempio for each in
var frutti:Array = new Array("Mela", "Pera", "Banana");
for each (var valore in frutti)
trace(valore);Output :
Mela Pera Banana
Ciclo while
Questo ciclo prende un solo parametro, una condizione che interrompera le iterazioni qualora risultasse falsa.
while (condizione)
{
// codice da ripetere
}Esempio while
var i:int = 0;
var frutti:Array = new Array("Mela", "Pera", "Banana");
while (i < frutti.length)
trace((++i) + ". " + frutti[i - 1]);Output :
1. Mela 2. Pera 3. Banana
Ciclo do while
do while differisce dal ciclo while perchè prima esegue il codice al suo interno, e dopo controlla se la condizione è vera.
do
{
// codice da ripetere
} while (condizione)Esempio do while
var i:int = 3; do trace(i++); while (i < 3)
Output :
3
Break e ContinuePrima di chiudere il capitolo analizziamo altre due istruzioni particolari, che ci consentiranno un maggiore controllo sui cicli : break e continue. Richiamando l'istruzione break all'interno di un ciclo, interromperemo immediatamente quest ultimo. Richiamando l'istruzione continue invece, forzeremo il ciclo a procedere all'iterazione successiva senza eseguire le istruzioni che seguono il continue. |
Esempio break
var iterazioni:int = 10;
for (var i:int = 0; i < iterazioni; i++)
{
if ((iterazioni / 2) == i) break; // Blocca il ciclo a metà
trace(i);
}Output :
0 1 2 3 4
Esempio continue
for (var i:int = 0; i < 10; i++)
{
if (i % 2)
{
trace(i + " è dispari");
continue;
}
trace(i + " è pari");
}Output :
0 è pari 1 è dispari 2 è pari 3 è dispari 4 è pari 5 è dispari 6 è pari 7 è dispari 8 è pari 9 è dispari
Per capire meglio il funzionamento provate ad eseguire l'esempio soprastante omettendo l'istruzione continue.
- Linguaggi:
- Tags:
