Questa istruzione permette di ripetere l'esecuzione di un gruppo di istruzioni per un numero definito di volte.
Sintassi |
for (iniz, cond, update) |
---|---|
iniz |
Espressione di inizializzazione del ciclo, tipicamente una assegnazione di variabile (opzionale, default 0) |
cond |
Espressione booleana che descrive la condizione di permanenza all'interno del ciclo FOR. |
update |
Espressione di aggiornamento, tipicamente incremento/decremento variabile. (opzionale, default +1). |
Validità |
Rule, Task. |
Note |
Al contrario di come succede in C, in R3 non é concessa la dichiarazione di una variabile dentro gli argomenti di un ciclo for. É quindi necessario dichiarare la variabile precedentemente. |
Esempio di utilizzo:
In questo esempio la sequenza degli eventi è la seguente: 1.La variabile di conteggio i viene inizializzata a zero, 2.La condizione di permanenza in ciclo "i < 22" viene valutata e riconosciuta vera, 3.Viene eseguito il blocco di istruzioni contenuto nel ciclo FOR (in questo caso la sola istruzione "pippo = pippo + i"), 4.La variabile "i" viene incrementata di due, 5.Il ciclo riprende da capo (punto 3) e viene eseguito complessivamente 11 volte, cioè fino a quando rimane vera la condizione di permanenza in ciclo. Nota: Nel caso in cui la condizione di permanenza in ciclo sia subito riconosciuta falsa, il blocco di istruzioni del ciclo FOR non verrà mai eseguito.
Esempio di inutilizzo dei dati facoltativi: Utilizzando il ciclo FOR è possibile omettere sia la inizializzazione della variabile di conteggio sia l'incremento della variabile di conteggio ad esempio le seguenti istruzioni:
Provocano la ripetizione delle istruzioni di ciclo all'infinito, la condizione di permanenza in ciclo vale 1 ed è sempre vera.
Esempio di utilizzo con l'istruzione continue: È possibile l'utilizzo dell'istruzione continue all'interno di un ciclo FOR, la sua esecuzione causa il salto dalla linea in questione all'istruzione end_for senza eseguire altre istruzioni
Esempio di utilizzo con l'istruzione break: È possibile l'utilizzo dell'istruzione break all'interno di un ciclo FOR, la sua esecuzione causa l'uscita immediata dal ciclo FOR senza eseguire altre istruzioni.
Esempio con assegnazioni dinamiche: Il valore iniziale della variabile di controllo del ciclo FOR è uguale alla somma del contenuto del registro intero non volatile nvr(12) e del registro intero non volatile nvr(14). Il ciclo viene eseguito finché j è minore della differenza tra il contenuto del registro intero non volatile nvr(22) e del registro intero non volatile nvr(24). La variabile j viene aumentata di 1 a ogni iterazione. |