English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ if, if...else e if...else annidati

In questo articolo, imparerai a creare istruzioni decisionali utilizzando diverse forme di strutture if..else nei programmi C++.

Struttura
Struttura if
Struttura if...else
Strutture if...else annidate
Operatore ternario

Struttura if in C++

if (testExpression) 
{
   // Istruzioni da eseguire se testExpression è vero
}

La struttura if valuta testExpression all'interno dei parentesi.

Se il risultato della calcolazione di testExpression è vero, si eseguono le istruzioni nel corpo if.

Se il risultato della calcolazione di testExpression è falso, si salta le istruzioni nel corpo if.

Come funziona la struttura if?

Diagramma di flusso della struttura if

L'immagine sopra descrive come funziona la struttura if.

Esempio 1: Struttura if in C++

// Il programma stampa il numero positivo inserito dall'utente
// Se l'utente inserisce un numero negativo, salta
 
#include <iostream>
using namespace std;
int main() 
{
    int number;
    cout << "Inserisci un intero: ";
    cin >> number;
    // Verifica se il numero è positivo
    if (number > 0) 
    {
        cout << "Hai inserito un numero intero positivo: " << number << endl;
    }
    cout << "Questa struttura viene sempre eseguita.";
    return 0;
}

Output: 1

Inserisci un intero: 5
Hai inserito un numero intero positivo: 5
Questa struttura viene sempre eseguita.

Output: 2

Inserisci un intero: -5
Questa struttura viene sempre eseguita.

Struttura if...else in C++

Se l'espressione di test (test Expression) è vera, viene eseguito il codice nel corpo if...else all'interno del corpo if e si salta il codice nel corpo else.

Se l'espressione di test (test Expression) è falsa, viene eseguito il codice nel corpo else e si salta il codice nel corpo if.

Come funziona la struttura if.. else?

Diagramma di flusso di if ... else

Esempio 2: Frase if ... else in C++

// Il programma verifica se un numero intero è positivo o negativo
// Questo programma considera 0 come un numero positivo
#include <iostream>
using namespace std;
int main() 
{
    int number;
    cout << "Inserisci un intero: ";
    cin >> number;
    if (number >= 0)
    {
        cout << "Hai inserito un numero positivo: " << number << endl;
    }
    
    else
    {
        cout << "Hai inserito un numero negativo: " << number << endl;
    }
    cout << "Questa riga viene sempre stampata.";
    return 0;
}

Risultato output

Inserisci un intero: -4
Hai inserito un numero negativo: -4.
Questa riga viene sempre stampata.

Frasi if...else annidate in C++

La frase if...else esegue due codici diversi a seconda che l'espressione di test sia true o false. A volte, è necessario scegliere tra più possibilità.

Con il comando if...else annidato, puoi verificare più espressioni di test e eseguire diversi codici per più condizioni.

Questo significa che puoi usare un altro if o else if all'interno di un if o else if.

Sintassi di if ... else annidato

if (testExpression1) 
{
   // Esegui queste istruzioni se testExpression1 è vero
}
else if(testExpression2) 
{
   // Esegui queste istruzioni se testExpression1 è falso e testExpression2 è vero
}
else{
    if (testExpression 3) 
    {
       // Esegui queste istruzioni se testExpression1 e testExpression2 sono false e testExpression3 è vero
    }
    else 
    {
       // Esegui queste istruzioni se tutte le espressioni di test sono false
    }
}

Esempio 3: C++ if...else annidato

// Il programma verifica se un numero intero è positivo, negativo o zero
#include <iostream>
using namespace std;
int main() 
{
    int number;
    cout << "Inserisci un intero: ";
    cin >> number;
    if (number > 0)
    {
        cout << "Hai inserito un numero positivo: " << number << endl;
    }
    else
    {
        if (number < 0)
            {
                cout << "Hai inserito un numero negativo: " << number << endl;
            }
             cout << "Hai inserito 0." << endl;
        }
    }
    cout << "This line is always printed.";
    return 0;
}

Risultato output

Inserisci un intero: 0
Hai inserito 0.
Questa riga viene sempre stampata.

Operatore condizionale/trioperatorio(?:)

L'operatore ternario opera su tre operandi e può essere utilizzato per sostituire una condizione if...else.

Ecco il codice if:

if ( a < b ) {
   a = b;
}
else {
   a = -b;
}

Puoi sostituire il codice sopra con un operatore ternario:

a = (a < b) ? b : -b;

Operatore ternario più corto e più leggibile rispetto alla condizione if...else.