Actionscript: i cicli. For, While, Do While.

Di: Pablito | 26/09/2020 18:41:26
I cicli permettono di ripetere uno script un determinato numero di volte o finché non viene soddisfatta una determinata condizione, con la possibilità di variare lo script ad ogni ripetizione.
In questi casi bisogna considerare il numero di volte che deve essere eseguito e come impostarlo affinché le istruzioni eseguite cambino ad ogni iterazione.

Risposte


Actionscript: ciclo FOR.

Il ciclo più importante di tutti è il For.
Questo esegue uno script mentre la condizione specificata è vera e la sintassi è la seguente:
for (inizio; condizione; prosegui){
istruzioni da eseguire
}
Esempio:
for (n=1; n<10; n++){
trace(“esecuzione numero”+n);
}
In questo esempio abbiamo scritto che partendo da n=1, mentre n è minore di 10, eseguiamo lo script
e incrementiamo n di 1, quindi in output avremo: esecuzione 1, esecuzione 2… fino a esecuzione 9,
che sarà l’ultima perché quando n =10 la condizione non è più soddisfatta, quindi il ciclo viene ignorato
e si passa allo script successivo.

Di: Pablito | 26/09/2020 18:42:26

Actionscript: ciclo FOR IN.

Questo tipo di ciclo è una variante del FOR e viene utilizzata quando si lavora con array e oggetti.
Infatti esso esegue lo script tante volte quanti sono gli elementi contenuti in un oggetto, questo è caratterizzato da 2 elementi, cioè l’iteratore e l’oggetto, il primo è una variabile che viene decrementata automaticamente,
il secondo è appunto un oggetto che nell’esempio di seguito riportato sarà un array, e la sintassi è la seguente:
for (iteratore in oggetto){
istruzioni da eseguire
}
Esempio:
mioArray=[“prima”, ”seconda”, “terza”, “quarta”, “quinta”];
for (n in mioArray){
trace(“esecuzione”+mioArray[n]);
}
In questo esempio, nella prima riga di codice abbiamo creato un array inserendo al suo interno 5 elementi. Successivamente il ciclo FOR IN esegue il conteggio degli elementi contenuti nell’array, iniziando dall’ultimo
e decrementandolo di 1 alla fine di ogni esecuzione. Alla prima esecuzione del codice n=4 (questo perché
gli elementi contenuti in un array vengono indicizzati a partire da 0, allora vengono contati iniziando da 0.
Esempio. Primo elemento ha indice 0, secondo elemento ha indice 1, ecc.), alla seconda esecuzione n=3 e così via fino all’ultima esecuzione del codice dove n=0.
In output avremo: esecuzione quinta, esecuzione quarta... ...fino a “esecuzione prima”.
Come si è potuto osservare nel ciclo FOR IN, a differenza del FOR non bisogna inserire né la condizione, né il codice corrispondente a “prosegui”, in quanto la variabile n, decrementandosi automaticamente di uno ad ogni passaggio, passerà per ogni elemento contenuto nell’oggetto.
Infine l’ordine di lettura dei due cicli è crescente per il ciclo FOR e decrescente per il ciclo FOR IN.

Di: Pablito | 26/09/2020 18:42:26

Actionscript: ciclo WHILE.

Anche i cicli WHILE ripetono delle istruzioni “mentre” una condizione è soddisfatta (vera o true), ma a differenza dei cicli FOR e FOR IN, non richiede di specificare il numero di ripetizioni, allora si tratta semplicemente di delimitare un ciclo che altrimenti sarebbe infinito. Per evitare ciò è molto importante assicurarsi che la condizione specificata prima o poi diventi falsa (non sia soddisfatta), la sintassi è la seguente:
while (condizione){
istruzioni da eseguire
}
Esempio:
mioArray=[“prima”, ”seconda”, “terza”, “quarta”, “quinta”];
flag=0;
n=0;
while (flag == 0 && n<mioArray.length){
if (mioArray[n] == “quinta”){
flag=1;
}
n++;
}
if (flag){
trace(“quinta trovata alla ripetizione n. ” + n);
}
In questo esempio, la prima riga di codice vede un Array come nell’esempio precedente, poi abbiamo impostato le variabili presenti nella condizione a 0, seguendo poi con il ciclo WHILE, che viene ripetuto finché non viene trovata la stringa “quinta” nell’array.
Il pezzo di codice: n<mio_array.length serve a contare gli elementi contenuti nell’array, partendo dal primo elemento che ha il valore 1, nel nostro caso restituisce il valore 5 perché sono 5 gli elementi presenti in mioArray.
Il ciclo alla prima esecuzione controlla le due condizioni: flag=0 e n=0. La condizione è verificata, allora esegue le istruzioni successive contenute che servono a controllare/check/verificare se la posizione corrispondente all’indice 0 dell’array contiene la stringa “quinta”. Essendo la prima posizione dell’array occupata dalla stringa “prima”, il codice contenuto nella prima condizione IF viene saltato, la variabile n viene incrementata di 1 e ricomincia il ciclo.
Quando n=4 l’istruzione IF troverà la stringa “quinta” nella posizione corrispondente nell’array, quindi la variabile
flag sarà impostata a 1. Adesso flag = 1 e la variabile n ha il valore 5, quindi la condizione specificata nel ciclo diventa falsa ovvero non soddisfatta. Il ciclo così non verrà più eseguito e si passerà ad eseguire il codice seguente, che nel nostro esempio verifica che la variabile flag che sia uguale a 1, quindi in output avremo:
“quinta trovata alla ripetizione n. 5”.

Di: Pablito | 26/09/2020 18:42:26

Actionscript: ciclo DO WHILE.

Come il ciclo FOR, anche il ciclo WHILE ha una variante, cioè il DO WHILE.
La sintassi è la seguente:
do {
istruzioni da eseguire
} while (condizione);
Esempio:
mioArray = [“prima”, “seconda”, “terza”, “quarta”, “quinta”];
flag = 0;
n = 0;
do {
if (mioArray[n] == “quinta”) {
flag = 1;
}
n++;
} while (flag == 0 && n<mioArray.length);
if (flag) {
trace(“quinta trovata alla ripetizione n. ”+n);
}
La differenza tra il WHILE e il DO WHILE sta nel fatto che quest’ultimo permette almeno un passaggio nel caso in cui la condizione non sia verificata, e questo perché il codice contenuto nel ciclo viene eseguito prima di verificare se la condizione è soddisfatta.

Di: Pablito | 26/09/2020 18:43:26

Actionscript: BREAK e CONTINUE.

Per modificare il flusso di un ciclo, si usano le istruzioni Break e Continue.
Break ci permette di uscire da un ciclo saltando direttamente alla fine per eseguire il codice successivo.
Esempio:
n=1;
while (n>=1){
trace(n);
if (n>10){
break;
}
n++;
}
trace(“fine”);
In questo esempio il ciclo viene eseguito in quanto la condizione è vera, e viene eseguito ripetutamente l’istruzione trace, poi quando n>10, la condizione IF è soddisfatta, pertanto viene eseguito il comando BREAK che ci fa uscire dal ciclo e passare al codice seguente, in questo caso è il comando trace che manda in output la stringa “fine”.
Senza il comando BREAK avremmo avuto un ciclo infinito perché la condizione è sempre soddisfatta/vera.
L’istruzione CONTINUE invece si comporta all’opposto del BREAK, portandoci immediatamente all’inizio del ciclo, tralasciando l’eventuale altro codice all’interno dello stesso.
Esempio:
for (n=1; n<5; n++){
if (n==3){
continue;
}
trace(n);
}
In questo esempio il ciclo viene ripetuto quattro volte, ma quando n=3, il comando CONTINUE ci riporta all’inizio dello stesso, facendoci saltare l’istruzione Trace, quindi avremo in output: 1, 2, 4.

Di: Pablito | 26/09/2020 18:43:26