Menu
CoddyTech

If - Else annidati

Fa parte della sezione Fondamenti del percorso C# di Coddy. Lezione 30 di 69.

Possiamo annidare le istruzioni if-else le une dentro le altre. Questo ci permette di creare strutture decisionali gerarchiche.

Per esempio:

if (age > 18) {
    if (hasLicense) {
        Console.WriteLine("You can drive");
    } else {
        Console.WriteLine("Get a license first");
    }
} else {
    Console.WriteLine("Too young to drive");
}

Può essere annidato all'infinito:

if (condition1) {
	if (condition2) {
		if (condition3) {
		    // se condition1, condition2 e condition3 sono vere
		    ...
		}
	}
}

Senza parentesi graffe, un else si abbina all’if più vicino sopra di esso che non abbia già un else:

if (age > 18)
    if (hasLicense)
        Console.WriteLine("You can drive");
    else
        Console.WriteLine("Get a license first");

Qui l’else appartiene a if (hasLicense), indipendentemente da cosa indichi il rientro. Usa le parentesi graffe per rendere chiaro l’abbinamento.

challenge icon

Sfida

Principiante

Crea un programma che verifichi se una persona può salire sulle montagne russe. I requisiti sono:

  • Deve avere almeno 12 anni
  • Deve essere più alta di 150cm
  • Se soddisfa entrambi i requisiti ma ha meno di 15 anni, ha bisogno della supervisione di un adulto

Imposta la variabile status esattamente su queste stringhe per ciascun caso:

  • Se è troppo giovane: Sorry, you're too young
  • Se non è abbastanza alta: Sorry, you're not tall enough
  • Se ha meno di 15 anni e non è accompagnata da un adulto: Sorry, you need an adult with you
  • Se ha meno di 15 anni ed è accompagnata da un adulto: You can ride with adult supervision!
  • Se ha almeno 15 anni ed è abbastanza alta: You can ride by yourself!

Provalo tu

using System;

class Program {
    public static void Main(string[] args) {
        int age = int.Parse(Console.ReadLine()); // Non modificare questa riga
        int height = int.Parse(Console.ReadLine()); // Non modificare questa riga
        bool hasAdult = bool.Parse(Console.ReadLine()); // Non modificare questa riga

        string status = "";
        
        // Scrivi il tuo codice qui sotto
        
        
        
        // Non modificare il codice sotto questa riga
        Console.WriteLine(status);
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore C# online