Le strutture di controllo sono particolari istruzioni che permettono di eseguire le istruzioni chiuse al loro interno secondo determinate condizioni specificate dal programmatore.
if
Descrizione:
Verifica una condizione, se essa è vera esegue il codice al suo interno.
Sintassi:
if (condizione){...}
Parametri:
- condizione
Codice di esempio:
int led = 13;
void setup(){
pinMode (led, LOW);
}
void loop(){
if (digitalRead(led) == LOW){
/*Se il pin 13 (led) è spento...*/
digitalWrite(led, HIGH); /*Accendilo!*/
}
}
Le parentesi possono essere omesse dopo un'istruzione if o in qualsiasi altra struttura di controllo se la riga successiva (definita dal punto e virgola) diventa l'unica istruzione condizionale:
...
void loop(){
if (digitalRead(led) == LOW)
/*Se il pin 13 (led) è spento...*/
digitalWrite(led, HIGH);
/*Accendilo!*/
}
Operatori di comparazione:
x == y (x è uguale a y)
//ATTENZIONE a non scrivere x = y!
x != y (x non è uguale a y)
x < y (x è minore di y)
x > y (x è maggiore di y)
x <= y (x è minore o uguale a y)
x >= y (x è maggiore o uguale a y)
if...else
Descrizione:
Permette un maggiore controllo sul flusso del codice rispetto al singolo if. Esso infatti
verrà eseguito se la condizione risulterà false.
Nel'else è possibile procedere con un altro if, in modo da poter eseguire contemporaneamente più test
che si escludono a vicenda; ogni test passerà a quello successivo fino a quando non se ne verificherà uno vero.
Sintassi:
if (condizione){
...
}
else{
...
}
Parametri:
- condizione
Codice di esempio:
int led = 13;
void setup(){
pinMode(led, LOW);
}
void loop(){
if (digitalRead(led) == LOW){
/*Se il pin 13 (led) è spento...*/
digitalWrite(led, HIGH); /*Accendilo!*/
}
else{
/*Altrimenti...*/
digitalWrite(led, LOW); /*Spegnilo!*/
}
}
- inizializzazione: viene inizializzata una variabile usata come contatore - condizione: viene inserita una condiziona dopo la quale il ciclo si ferma - incremento: viene incrementata la variabile inizializzata precedentemente
Codice di esempio:
int led = 13;
void setup(){
pinMode (led, LOW);
}
void loop(){
for(int i = 0; i < 10; i++) {
/*Ripete per 10 volte...*/
digitalWrite (led, HIGH);
delay (1000);
digitalWrite (led, LOW);
delay (1000);
}
}
while
Descrizione:
A differenza del ciclo for che si ripete per n° volte, il ciclo while, come quello do...while che vedremo dopo, si ripete fino a quando la condizione tra parentesi diventa false.
Il do...while funziona allo stesso modo del ciclo while , con l'eccezione che la condizione viene testata alla fine del ciclo, quindi il ciclo verrà eseguito almeno una volta.
Sintassi:
do{
...
}while(condizione);
Parametri:
- condizione
Codice di esempio:
int led = 13;
bool stato = false;
void setup(){
pinMode (led, LOW);
}
void loop(){
do{
digitalWrite (led, HIGH);
delay (1000);
digitalWrite (led, LOW);
delay (1000);
while (stato != false); /*Anche se la condizione è falsa, il ciclo viene eseguito una volta*/
}
}
Quiz di Riepilogo
Quiz di riepilogo riguardante le strutture di controllo: if, if...else, for, while e do...while.
Scelta Multipla
Le strutture di controllo permettono di eseguire
solo in determinate condizioni.
L'istruzione if permettere di
le istruzioni contenute al suo interno solo se, verificando la condizione al suo interno, risulta
.
Alla if può seguire l'istruzione
. Essa viene eseguita se la condizione dell'if risulta
.
L'istruzione
ripete le istruzioni al suo interno n° volte. Essa ha 3 paremetri:
.
Il ciclo while, come il ciclo
, si ripete fino a quando la condizione tra parentesi diventa
.
Il ciclo do...while viene eseguito almeno una volta perchè la condizione viene verificata
.
Soluzioni quiz di riepilogo riguardante le strutture di controllo: if, if...else, for, while e do...while.
Scelta Multipla
Le strutture di controllo permettono di eseguire le istruzioni al loro interno
solo in determinate condizioni. (Risposta Data: )
L'istruzione if permettere di eseguire
le istruzioni contenute al suo interno solo se, verificando la condizione al suo interno, risulta
Vera. (Risposte Date: e )
Alla if può seguire l'istruzione else.
Essa viene eseguita se la condizione dell'if risulta Falsa. (Risposte Date: e )
L'istruzione for
ripete le istruzioni al suo interno n° volte. Essa ha 3 paremetri: inizializzazione, condizione e incremento. (Risposte Date: e )
Il ciclo while, come il ciclo do..while
, si ripete fino a quando la condizione tra parentesi diventa Falsa. (Risposte Date: e )
Il ciclo do...while viene eseguito almeno una volta perchè la condizione viene verificata
alla fine del ciclo. (Risposta Data: )