Dataczwartek, 13 sierpnia 2026 Czas19:12:28
← Programowanie konsolowe (C#)

Lekcja 5. Instrukcje warunkowe (if, else, switch)

Podstawowy

Po co się tego uczymy?

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.

Teoria

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.

Schemat

if (warunek)
    │
    ├── TAK → wykonaj blok "if"
    │
    └── NIE → sprawdź "else if" (jeśli jest) → w końcu "else"

switch (zmienna)
    │
    ├── case A: → wykonaj, potem break
    ├── case B: → wykonaj, potem break
    └── default: → gdy żaden case nie pasuje

Przykład z życia

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.

Kod (C#)

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;
        }
    }
}

Komentarz i wyjaśnienie kodu

Warunki w łańcuchu if-else if-else są 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 >= 5 musi być sprawdzone PRZED ocena >= 3, inaczej ocena 5 też "wpadłaby" w drugi warunek.

Ćwiczenie samodzielne

Napisz program sprawdzający instrukcją if-else, czy podana na sztywno liczba jest dodatnia, ujemna czy równa zero.

Plac zabaw — wypróbuj online

Poniższy kod wykonuje się od razu w Twojej przeglądarce — nic nie trzeba instalować. Zmień kod i kliknij „Uruchom”.

CSHARP

Zadania do pracy własnej

  1. Napisz program klasyfikujący wiek osoby (na sztywno wpisany) na: dziecko (do 12 lat), nastolatek (13-17), dorosły (18+).

  2. Napisz program używający switch do wypisania nazwy miesiąca na podstawie jego numeru (1-12).

  3. Napisz program klasyfikujący trójkąt na podstawie długości trzech boków (wpisanych na sztywno): czy w ogóle może istnieć (suma dwóch boków musi być większa od trzeciego), a jeśli tak — czy jest równoboczny, równoramienny czy różnoboczny.

Typowe błędy

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.

Nawiązanie do egzaminu zawodowego

To realizacja efektu INF.04.4.4 ("stosuje wyrażenia, instrukcje i biblioteki") w zakresie instrukcji warunkowej i instrukcji wyboru — jeden z najbardziej podstawowych elementów programowania strukturalnego wymaganego w całym INF.04.