In quest’articolo studieremo il funzionamento dell’istruzione if else in C++.
Quando vogliamo eseguire un’istruzione al verificarsi di una certa condizione possiamo utilizzare infatti l’istruzione if … else.
Sintassi if else in C++
La sintassi è dunque questa:
if (espressione) {
istruzioni_if
}
else {
istruzioni_else
}
Se espressione è vera vengono eseguite le istruzioni_if, altrimenti se è falsa il programma esegue le istruzioni_else.
L’istruzione può anche essere una sola ed in tal caso le parentesi graffe possono essere omesse, ma di solito si scrivono comunque. Nel caso di più istruzioni le parentesi graffe sono obbligatorie.
Se non necessaria, l’istruzione else può anche essere omessa.
Facciamo subito un classico esempio per capire meglio il funzionamento dell’istruzione if else in C++.
Esempio con l’uso di if else in C++
Prendere in input l’età di una persona e controllare se è maggiorenne.
Per sviluppare l’esercizio ho utilizzato inoltre gli operatori di confronto.
Gli operatori di confronto sono:
> maggiore
< minore
== uguale
>= maggiore o uguale
<= minore o uguale
!= diverso
Ecco dunque il listato completo sull’uso dell’istruzione if else in C++:
#include <iostream>
using namespace std;
int main() {
int eta;
cout <<"Inserisci l'eta': ";
cin >>eta;
if (eta >= 18) { //se l'età è maggiore o uguale a 18
cout <<"Maggiorenne "; //allora stampo a video : "Maggiorenne "
} else { //altrimenti sè minore di 18
cout <<"Minorenne"; //allora stampo a video : "Minorenne"
}
return 0;
}
If annidati
All’interno delle istruzioni if ed else è possibile inserire altri if.
Esempio con l’uso degli if annidati
Facciamo anche qui un esempio per capire meglio:
#include <iostream>
using namespace std;
int main() {
int voto;
cout <<"Inserisci un numero: ";
cin >>voto;
if (voto < 10) {
if (voto < 6) {
cout <<"Mi spiace non sei sufficiente. Ti daro' possibilita' di recuperare! ";
} else {
cout <<"Bravo!";
}
}
return 0;
}
In questo esempio sull’utilizzo di if annidati, realizzato a scopo didattico, abbiamo dapprima valutato il voto e se tale voto è minore di 10 abbiamo valutato se è anche minore di 6 oppure no, dando in entrambi i casi un messaggio in output.
Quindi il secondo if, con tutte le sue istruzioni, non verrà valutato se il voto di partenza non è minore di 10.
Inoltre notate anche che non ho inserito l’else del primo if, in quanto in questo specifico esempio non era necessario.
Facciamo adesso un altro esempio.
Esempio 3
#include <iostream>
using namespace std;
int main() {
int numero;
cout << "Inserisci un numero: ";
cin >> numero;
if (numero < 100) {
if (numero > 0) {
cout <<"Il numero e' minore 100 e maggiore di 0. ";
} else {
cout <<"Il numero e' minore di 0.";
}
} else {
if (numero == 100) {
cout <<"Il numero e' uguale a 100. ";
} else {
cout <<"Il numero e' maggiore di 100. ";
}
}
return 0;
}
In questo caso ho inserito l’else al primo if.
If else a cascata
Le decisioni a più vie possono essere risolte con l’uso di più if else a cascata.
Esempio 4
Prendere un numero e controllare se positivo, negativo o nullo.
Prendiamo un numero intero in input e con l’istruzione if controllo se il numero è negativo. Se la condizione è vera visualizzo in output che il numero è negativo, se è falsa allora controllo se il numero è nullo. Se quest’ultima condizione è vera stampo in ouptut che il numero è nullo, altrimenti il numero sarà positivo e visualizzo in output il relativo messaggio (è importante evitare di inserire un altro se!).
Ecco il listato compelo sull’esempio di if else a cascata in C++:
#include <iostream>
using namespace std;
int main() {
int numero;
cout << "Inserisci un numero: ";
cin >> numero;
if (numero < 0) { //se il numero è negativo
cout << "Numero negativo "; //allora stampo a video : "Numero negativo"
} else if (numero == 0) { //altrimenti se il numero è nullo
cout << "Numero nullo "; //allora stampo a video : "Numero nullo"
} else { //altrimenti se il numero è positivo
cout << "Numero positivo "; //allora stampo a video : "Numero positivo"
}
return 0;
}
Questi sono solo alcuni semplici esempi di utilizzo di if else in C.
Alcuni link utili:
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++