L’istruzione di comando IF/ELSE nel linguaggio C++

Nell’articolo di oggi useremo l’istruzione di comando IF/ELSE per creare un programma che sappia identificare tra due o tre numeri quale sia il maggiore o il minore. Possiamo tradurre IF/ELSE in “SE/ALTRIMENTI”, istruzione necessaria da comprendere quando andiamo a chiedere al programma di verificare una o più condizioni. Come visto nei precedenti articoli, lavoreremo su Dev-C++ [LINK], un software open source per ambiente Microsoft Windows.

IDE

Per poter scrivere il nostro codice, apriamo il programma Dev-C++ e andiamo sul menu File, poi su Nuovo->File sorgente.

Testo

Possiamo anche usare la combinazione di tasti Ctrl+N.

Testo

Codice

Nel primo esempio, che potete scaricare a questo LINK, dovremo stabilire, inserendo due numeri e stampandone il risultato, quale sia il numero maggiore o il minore. Iniziamo includendo la libreria iostream, una libreria inclusa nella IDE e che consente di adoperare gli standard di Input e Output. Essa è essenziale per poter proseguire con la scrittura e l’esecuzione del codice.


#include <iostream>

Andiamo ad “utilizzare lo spazio dei nomi”, ossia utilizziamo le denominazioni di std (cin, cout, endl) riducendo il codice da scrivere.


using namespace std;

Creiamo due variabili intere, n1 e n2 che compareremo per stabilire il numero più grande.


int n1, n2;

Creiamo la funzione principale main() e disponiamo che il terminale ci chieda di inserire uno alla volta i numeri da comparare e che li inserisca uno alla volta nelle variabili appena create.


cout << "Inserisci il primo numero: ";
cin >> n1;
cout << "Inserisci il secondo numero: ";
cin >> n2;

Passiamo ora ad analizzare l’istruzione di comando IF/ELSE. Iniziamo ponendo la condizione da rispettare. Nel nostro caso sarà n1 == n2. Il doppio uguale è definito EQUAL, ossia corrisponde. In poche parole, chiediamo al programma di verificare se il contenuto di n1 corrisponda al contenuto di n2. In programmazione, quando invece chiediamo al programma di verificare che non ci sia corrispondenza, la scrittura corretta sarà n1 != n2. In tal caso, la scrittura != viene definita NOT EQUAL. Procediamo, poi, stampando il valore n1 seguito dal valore n2 con la dicitura di “corrisponde a” se i due numeri corrispondono.


if (n1 == n2)
cout << n1 << " corrisponde a " << n2 << endl;

Nel caso in cui i due numeri non corrispondano, dobbiamo stabilire se n1 sia maggiore di n2. Utilizziamo il comparatore > (maggiore), confronteremo i due numeri, stampando il relativo messaggio.


 else if (n1 >= n2)
cout << n1 << " maggiore di " << n2 << endl;

Infine, l’ultimo caso rimanente è quello in cui bisogna stabilire se n1 è minore di n2. Non sarà necessario specificare il comparatore, dobbiamo lo stesso impostare un messaggio.


else
cout << n1 << " minore di " << n2 << endl;

Non dimentichiamoci di usare return 0 per terminare il programma.


return 0;

  • IF/ELSE

Vediamo adesso di complicare le cose. Poniamoci il problema di dover comparare non due numeri, ma tre numeri. Ciò richiederà l’utilizzo dell’operatore logico && (AND). Iniziamo il nostro codice, che potete scaricare a questo LINK, inserendo la libreria iostream, utilizzando namespace e dichiarando tre variabili intere.


#include <iostream>

using namespace std;

int n1, n2, n3;

Creiamo la funzione main() ed al suo interno, come fatto prima, disponiamo che il terminale ci chieda di inserire i tre numeri, uno per volta.


cout << "Inserisci primo numero: ";
cin >> n1;

cout << "Inserisci secondo numero: ";
cin >> n2;

cout << "Inserisci terzo numero: ";
cin >> n3;

Andiamo a comparare n1 con n2 e con n3. Per farlo useremo l’operatore logico &&, in modo da confrontare simultaneamente i tre valori. Valutiamo il caso in cui i tre numeri corrispondano.


if (n1 == n2 && n1 == n3)
cout << "I tre numeri sono uguali";

Il secondo caso da valutare è quello in cui n1 è minore di n2 e n2 è minore di n3. Di conseguenza, il numero maggiore sarà n3.


else if (n1 < n2 && n2 < n3)
cout << "Il numero maggiore: " << n3 << endl;

Il terzo caso verificherà che n1 sia maggiore sia di n2 che di n3.


else if (n1 > n2 && n1 > n3)
cout << "Il numero maggiore: " << n1 << endl;

L’ultimo caso rimasto è che n2 sia il maggiore dei tre.


else
cout << "Il numero maggiore: " << n2 << endl;

Concludiamo facendo presente che esistono altri due operatori logici: il primo è OR ( || ), l’altro è NOT ( ! ).


n1 || n2

!n1