Menu
CoddyTech

Zagnieżdżone If - Else

Część sekcji Podstawy ścieżki C# w Coddy. Lekcja 30 z 69.

Możemy zagnieżdżać instrukcje if-else w sobie nawzajem. Pozwala nam to tworzyć hierarchiczne struktury podejmowania decyzji.

Na przykład:

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

Można je zagnieżdżać bez końca:

if (condition1) {
	if (condition2) {
		if (condition3) {
		    // jeśli condition1, condition2 i condition3 są prawdziwe
		    ...
		}
	}
}

Bez nawiasów klamrowych instrukcja else łączy się z najbliższą znajdującą się nad nią instrukcją if, która nie ma jeszcze instrukcji else:

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

W tym przypadku else należy do if (hasLicense), niezależnie od wcięcia. Użyj nawiasów klamrowych, aby jasno określić to powiązanie.

challenge icon

Wyzwanie

Początkujący

Napisz program, który sprawdza, czy ktoś może przejechać się kolejką górską. Wymagania:

  • Osoba musi mieć co najmniej 12 lat
  • Osoba musi mieć więcej niż 150cm wzrostu
  • Jeśli spełnia oba wymagania, ale ma mniej niż 15 lat, potrzebuje opieki osoby dorosłej

Ustaw zmienną status dokładnie na jeden z tych ciągów znaków dla każdego przypadku:

  • Jeśli osoba jest za młoda: Sorry, you're too young
  • Jeśli nie jest wystarczająco wysoka: Sorry, you're not tall enough
  • Jeśli ma mniej niż 15 lat i nie towarzyszy jej osoba dorosła: Sorry, you need an adult with you
  • Jeśli ma mniej niż 15 lat i towarzyszy jej osoba dorosła: You can ride with adult supervision!
  • Jeśli ma co najmniej 15 lat i jest wystarczająco wysoka: You can ride by yourself!

Spróbuj swoich sił

using System;

class Program {
    public static void Main(string[] args) {
        int age = int.Parse(Console.ReadLine()); // Nie zmieniaj tej linii
        int height = int.Parse(Console.ReadLine()); // Nie zmieniaj tej linii
        bool hasAdult = bool.Parse(Console.ReadLine()); // Nie zmieniaj tej linii

        string status = "";
        
        // Napisz swój kod poniżej
        
        
        
        // Nie zmieniaj kodu poniżej tej linii
        Console.WriteLine(status);
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C# online