Un saluto a tutti e benvenuti nella quinta lezione del corso di C++ per principianti. Dopo aver parlato ampiamente dei tipi di dato che il C++ ci offre, oggi sposteremo l’attenzione su quella che è la logica interna di un programma, ovvero quella che permette al computer di capire quando comportarsi in un modo o quando, invece, comportarsi in un altro modo. In altre parole, oggi si parlerà della struttura condizionale.
Una struttura condizionale è un costrutto che determina l’esecuzione di un blocco d’istruzioni al verificarsi di certe condizioni.
La struttura condizionale IF/ELSE
La struttura condizionale più semplice in assoluto e alla quale dedicheremo l’attenzione quest’oggi è IF/ELSE che, tradotto in italiano, significa SE/ALTRIMENTI.
Molto banalmente, se una determinata condizione viene rispettata, verrà eseguito un certo blocco di istruzioni, altrimenti ne verrà eseguito un altro. Andiamo con un esempio.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/*Tralasciando l'header del file e la dichiarazione delle variabili... In questo programma verrà chiesta l'età all'utente e in base a questa si visualizzerà in output un messaggio che dice che questi è maggiorenne o, in caso contrario, che non lo è.*/ int main() { cout<<"Inserisci la tua eta'"<<endl; cin>>eta; //chiaramente la variabile eta è un intero if(eta>=18) { cout<<"Sei maggiorenne!"<<endl; } else { cout<<"Non sei maggiorenne!"<<endl; } } |
La sintassi dell’IF/ELSE è molto semplice:
1 2 |
if(condizione) {istruzioni} else{istruzioni} |
Come avrete potuto notare, all’interno della condizione è stato usato un operatore di confronto, ovvero >= (maggiore o uguale). Ecco una tabella che riassume i principali operatori di confronto presenti in C++:
Tabella degli operatori di confronto
Esistono tanti altri modi per utilizzare una struttura IF/ELSE.
Verifica di più condizioni
Grazie agli operatori logici come and e or è possibile verificare più condizioni nella stessa struttura IF/ELSE.
Esempio:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
int main() { cout<<"Inserisci la tua eta'"<<endl; cin>>eta; cout<<"Sei maschio o femmina? (m/f)"<<endl; cin>>sesso; if (eta>=18 and sesso=="m") { if(sesso=="m") { cout<<"Sei un adulto!"<<endl; } else if (sesso=="f") { cout<<"Sei un'adulta!"<<endl; } else { cout<<"Il valore inserito non e' corretto."<<endl; } } else { cout<<"Non sei maggiorenne!"<<endl; } } |
In questa porzione di codice è possibile vedere l’utilizzo dell’operatore and che sta a indicare che per eseguire ciò che si trova all’interno dell’IF è necessario che tutte le condizioni presenti siano rispettate.
Si può notare come delle strutture IF/ELSE risiedano all’interno di un’altra struttura IF/ELSE. Queste sono chiamate “IF annidati” e sono utili nel caso in cui un IF solo non bastasse ad effettuare i controlli necessari.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int main() { cout<<"Pensi di poter lavorare? Inserisci la tua eta'"<<endl; cin>>eta; if (eta<18 or eta>99) { cout<<"Non puoi lavorare alla tua eta'!"<<endl; } else { cout<<"Puoi lavorare alla tua eta'!"<<endl; } } |
In quest’ultima porzione di codice possiamo notare invece l’utilizzo dell’operatore or, che indica come è necessario che solo una delle due condizioni presenti venga rispettata per eseguire ciò che si trova all’interno dell’IF.
Risorse utili:
Per approfondimenti, domande e curiosità riguardo questa lezione non esitate a commentare.
Nella prossima lezione si parlerà dei cicli WHILE/DO e FOR.
Sinhuè Angelo Rossi