INF.04 · C# · lekcja 5
Instrukcje warunkowe (if, else, switch)
Bilet zależny od wieku
- Zrozum
- Sprawdź
- Napisz sam
Po tej lekcji: bilet zależny od wieku
Dzisiaj zrobisz konkretną rzecz
Program, który zawsze robi dokładnie to samo niezależnie od danych wejściowych, jest mało użyteczny — instrukcje warunkowe to pierwszy krok w stronę programu, który REAGUJE na różne sytuacje, tak jak zrobi to każda prawdziwa aplikacja, którą zbudujesz w tym kursie.
Każdy system logowania sprawdza warunkiem if, czy podane hasło zgadza się z zapisanym — to dokładnie ta sama instrukcja, tylko zastosowana do prawdziwego, ważnego problemu.
Sprawdź w działaniu
Bilet zależny od wieku
Najpierw przewidź wynik. Zmień dane w modelu i porównaj efekt. Spróbuj także przypadku granicznego, a nie tylko pierwszego poprawnego przykładu.
Model pokazuje wybraną zasadę. Nie uruchamia ani nie ocenia wklejonego kodu C#.
1. Przygotuj i uruchom własny projekt
2. Najpierw mały przykład
Wykonaj tę próbę przed dłuższym rozwiązaniem. if (warunek) wybiera blok, gdy warunek jest true. else if sprawdza kolejny dopiero po odrzuceniu poprzedniego. else nie ma warunku. Dla kilku instrukcji otocz blok klamrami.
int wiek = 17;
if (wiek < 7)
Console.WriteLine("bezpłatny");
else if (wiek < 18)
Console.WriteLine("ulgowy");
else
Console.WriteLine("normalny");
Dla17: ulgowy. Sprawdź też6,7,18.
- Co sprawdzić? Zmień jedną wartość i przed uruchomieniem zapisz przewidywany rezultat. Porównaj go z opisem wyniku; przy błędzie wróć do konkretnej instrukcji.
Jak to działa — 1
Instrukcje warunkowe pozwalają programowi podejmować DECYZJE — wykonać różny kod w zależności od tego, czy jakiś warunek jest prawdziwy.
if — wykonuje blok kodu TYLKO jeśli warunek jest prawdziwy:
if (wiek >= 18) { ... }
if-else — jedna z dwóch ścieżek, zawsze któraś się wykona:
if (warunek) { ... } else { ... }
if-else if-else — łańcuch wielu warunków sprawdzanych po kolei, pierwszy prawdziwy "wygrywa":
if (ocena >= 5) { ... } else if (ocena >= 3) { ... } else { ... }
switch — czytelniejsza alternatywa dla długiego łańcucha if-else if, gdy porównujesz JEDNĄ zmienną z wieloma konkretnymi wartościami:
switch (dzien) { case 1: ...; break; case 2: ...; break; default: ...; break; }
Słowo kluczowe break jest konieczne na końcu każdego case — bez niego wykonanie "przeleci" do kolejnego przypadku (tzw. fall-through), co w C# w większości przypadków jest błędem kompilacji, jeśli case nie jest pusty.
3. Pełny przykład — czytaj od Main
Teraz zastąp Program.cs tym programem. Zanim uruchomisz, znajdź dane wejściowe, operację i miejsce prezentacji wyniku. W tym wariancie zachowujemy jawny Main. Nie wklejaj kilku pełnych programów do jednego pliku.
using System;
class Program
{
static void Main()
{
int ocena = 4;
if (ocena >= 5)
{
Console.WriteLine("Bardzo dobrze!");
}
else if (ocena >= 3)
{
Console.WriteLine("Wystarczająco.");
}
else
{
Console.WriteLine("Musisz to powtórzyć.");
}
int dzienTygodnia = 3;
switch (dzienTygodnia)
{
case 1:
Console.WriteLine("Poniedziałek");
break;
case 2:
Console.WriteLine("Wtorek");
break;
case 3:
Console.WriteLine("Środa");
break;
default:
Console.WriteLine("Inny dzień");
break;
}
}
}
- Prześledź kod Warunki w łańcuchu
if-else if-elsesą sprawdzane PO KOLEI, od góry — gdy pierwszy pasujący warunek zostanie znaleziony, reszta łańcucha jest pomijana. Dlatego kolejność warunków ma znaczenie:ocena >= 5musi być sprawdzone PRZEDocena >= 3, inaczej ocena 5 też "wpadłaby" w drugi warunek.
Sprawdź, zanim przepiszesz cały program
Częsty błąd to zapomnienie break w instrukcji switch — C# w większości przypadków zgłosi błąd kompilacji, co jest akurat pomocne (w przeciwieństwie do niektórych innych języków, które po cichu "przelecą" dalej). Drugi błąd: używanie wielu niezależnych if zamiast else if tam, gdzie warunki się wykluczają — działa, ale program niepotrzebnie sprawdza wszystkie warunki, nawet gdy pierwszy już był prawdziwy.
Ćwiczenie z pomocą · samodzielna praca
4. Teraz Twoja zmiana
Napisz program sprawdzający instrukcją if-else, czy podana na sztywno liczba jest dodatnia, ujemna czy równa zero.
Spełnij warunki polecenia. Zapisz wejście, otrzymany wynik i wyjaśnij, która część kodu za niego odpowiada.
? Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź
Wróć do podstawowej formy oraz objaśnienia: if (warunek) wybiera blok, gdy warunek jest true. else if sprawdza kolejny dopiero po odrzuceniu poprzedniego. else nie ma warunku. Dla kilku instrukcji otocz blok klamrami.
Krok 2 — pokaż podpowiedź
Zmień tylko część potrzebną do polecenia. Zachowaj działającą wersję przed zmianą i uruchamiaj po każdym małym etapie.
Krok 3 — pokaż podpowiedź
Sprawdź przypadek zwykły i graniczny; porównaj z regułą: Dla17: ulgowy. Sprawdź też6,7,18.
Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.
5. Sprawdź rozumienie, nie tylko uruchomienie
Dalej na swoim koncie
Rozgrzewki, quiz i zadania są w biurku ucznia.
Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.
Zaloguj się →