Nel momento in cui ci si tenta di risolvere un problema si può far fronte a un algoritmo il quale ricorre a delle ripetizioni delle istruzioni da effettuare. Quando si vuol ripetere l’esecuzione di un gruppo di istruzioni per un numero prefissato di volte in Arduino IDE si utilizza il ciclo for.
Il ciclo for utilizza una struttura di ripetizione con contatore (o iterazione enumerativa). Questa struttura permette di ripetere un certo gruppo di istruzioni, non in base al valore di verità di una condizione, ma in base a un numero di volte prefissato.
La variabile viene detta contatore proprio perché ha la funzione di contare il numero di ripetizioni.
La sintassi del ciclo for è la seguente:
for (int i=min; i<=max; i++){
istruzioni;
}
Le istruzioni da eseguire in modo iterato possono essere una o più. Le istruzioni vengono ripetute tante volte, quante ne occorrono per portare il valore del contatore i dal valore iniziale (min) al valore finale (max), incrementandolo di 1 ad ogni ripetizione.
Il contatore deve essere una variabile dichiarata di tipo int. La dichiarazione può essere posta all’interno del ciclo for oppure precedentemente.
Ma cosa accade all’interno del ciclo for? In che modo procede? La sintassi può essere schematizzata nella seguente maniera, in tal modo da comprendere al meglio le caratteristiche:
for (espressione 1; espressione 2; espressione 3 ){
istruzioni;
}
Le espressioni di inizializzazione, condizione ed iterazione devono essere separate dal punto e virgola (;).
L’espressione 1 consiste nell’Inizializzazione: questa operazione si svolge una sola volta, nel momento in cui per la prima volta si giunge il ciclo for; in seguito interverranno
L’espressione 2 consiste nella condizione: se la condizione è verificata si passerà all’espressione iterativa (di solito si tratta dell’incremento di 1 della variabile i) e in seguito vi sarà l’esecuzione delle istruzioni
L’espressione 3 consiste nell’ espressione_iterativa: è di solito un’istruzione di incremento o decremento del contatore.Nel momento in cui la condizione è falsa le istruzioni non saranno eseguite. La condizione sarà falsa perché la variabile utilizzata all’interno del ciclo for (di solito i) ha subito un incremento e decremento a causa dell’”espressione iterativa”
Ecco in che modo vengono eseguite le varie espressione:
- passo 0 ciclo for : si esegue espressione 1 e poi espressione 2, si passa in seguito all’esecuzione delle istruzioni
- passo 1 ciclo for: si esegue l’espressione 2, e poi si passa all’espressione 3 (di solito incremento variabile) , si passa in seguito all’esecuzione delle istruzioni
- altri passi: uguale al passo 1 finche la condizione sia vera.
Il controllo della ripetizioni di istruzioni mediante un contatore può essere realizzato in modo equivalente usando una struttura di ripetizione postcondizionale (do…while) o una struttura precondizionale (while).
La struttura for, nel caso di ripetizione con un numero prefissato di volte, risulta più compatta e più semplice da rappresentare rispetto alla struttura while, in quanto dentro il for sono rappresentati l’assegnazione del valore iniziale del contatore e l’incremento del contatore stesso.
In linea di principio, infatti, qualunque algoritmo che impieghi un ciclo for può essere trascritto in una forma che usa solo il ciclo while, e viceversa.
Nel prossimo articolo sarà presente un progetto con Arduino per quanto riguarda l’accensione di un LED RGB e della modifica del colore della luce emessa. Ecco una bozza:
Link Utili:
Arduino IDE: ciclo while e do while #5
Arduino IDE: accendere led con un bottone (if) #4.1
Arduino IDE: la struttura condizionale IF #4
Arduino IDE: operatori aritmetici, relazione e logici #3
Arduino IDE: variabili, costanti e macro #2
Arduino IDE: in che maniera si crea un programma? #1
Arduino IDE: che cos’è e come funziona #0