Instrukcje wyboru: Wybór jednej z wielu ścieżek

Kurs: Wstęp do programowania
Lekcja 2: Podstawy składni języka programowania
Temat 9: Instrukcje wyboru: Wybór jednej z wielu ścieżek

⇓ spis treści ⇓


Instrukcje wyboru są kluczowym elementem w programowaniu, pozwalającym na podejmowanie decyzji spośród wielu możliwych ścieżek działania. Dzięki nim można stworzyć programy, które reagują na różne warunki i wykonują odpowiednie operacje. W tej lekcji omówimy, jak działają instrukcje wyboru, takie jak switch w C++ oraz if-elif-else w Pythonie, a także jak efektywnie z nich korzystać.

Instrukcja switch w C++

Instrukcja switch jest często używana, gdy trzeba podjąć decyzję w oparciu o wartość pojedynczej zmiennej. Umożliwia sprawdzanie wielu przypadków i wykonanie odpowiedniego bloku kodu w zależności od wartości zmiennej.

Składnia instrukcji switch
switch (zmienna) {
    case wartość1:
        // Kod do wykonania, jeśli zmienna ma wartość1
        break;
    case wartość2:
        // Kod do wykonania, jeśli zmienna ma wartość2
        break;
    // Więcej przypadków...
    default:
        // Kod do wykonania, jeśli żaden przypadek nie jest spełniony
        break;
}
Przykład w C++: Wybór dnia tygodnia
int dzien = 3;
switch (dzien) {
    case 1:
        std::cout << "Poniedziałek" << std::endl;
        break;
    case 2:
        std::cout << "Wtorek" << std::endl;
        break;
    case 3:
        std::cout << "Środa" << std::endl;
        break;
    case 4:
        std::cout << "Czwartek" << std::endl;
        break;
    case 5:
        std::cout << "Piątek" << std::endl;
        break;
    case 6:
        std::cout << "Sobota" << std::endl;
        break;
    case 7:
        std::cout << "Niedziela" << std::endl;
        break;
    default:
        std::cout << "Nieprawidłowy dzień" << std::endl;
        break;
}

W tym przykładzie instrukcja switch sprawdza wartość zmiennej dzien i wykonuje odpowiedni blok kodu. Jeśli żadna z wartości nie pasuje, wykonywany jest blok default.

Instrukcje wyboru w Pythonie: if-elif-else

W Pythonie nie ma instrukcji switch, ale jej funkcjonalność można łatwo odwzorować za pomocą konstrukcji if-elif-else. Dzięki tej konstrukcji można sprawdzić wiele warunków i wykonać kod zależnie od tego, który warunek jest spełniony.

Składnia instrukcji if-elif-else
if warunek1:
    # Kod do wykonania, jeśli warunek1 jest prawdziwy
elif warunek2:
    # Kod do wykonania, jeśli warunek2 jest prawdziwy
# Więcej elif...
else:
    # Kod do wykonania, jeśli żaden warunek nie jest prawdziwy
Przykład w Pythonie: Wybór dnia tygodnia
dzien = 3
if dzien == 1:
    print("Poniedziałek")
elif dzien == 2:
    print("Wtorek")
elif dzien == 3:
    print("Środa")
elif dzien == 4:
    print("Czwartek")
elif dzien == 5:
    print("Piątek")
elif dzien == 6:
    print("Sobota")
elif dzien == 7:
    print("Niedziela")
else:
    print("Nieprawidłowy dzień")

W tym przykładzie instrukcja if-elif-else sprawdza wartość zmiennej dzien i wybiera odpowiednią ścieżkę działania.

Używanie instrukcji wyboru w praktyce

Instrukcje wyboru są bardzo przydatne w programach, które muszą reagować na różne dane wejściowe. Na przykład, można ich użyć do obsługi menu, podejmowania decyzji w grze lub sprawdzania różnych stanów aplikacji.

Przykład: Obsługa menu w C++
int wybor;
std::cout << "Wybierz opcję: 1. Start 2. Ustawienia 3. Wyjdź" << std::endl;
std::cin >> wybor;
switch (wybor) {
    case 1:
        std::cout << "Rozpoczynamy grę!" << std::endl;
        break;
    case 2:
        std::cout << "Otwieram ustawienia..." << std::endl;
        break;
    case 3:
        std::cout << "Zamykanie programu." << std::endl;
        break;
    default:
        std::cout << "Nieprawidłowy wybór!" << std::endl;
        break;
}
Przykład: Obsługa menu w Pythonie
wybor = int(input("Wybierz opcję: 1. Start 2. Ustawienia 3. Wyjdź "))
if wybor == 1:
    print("Rozpoczynamy grę!")
elif wybor == 2:
    print("Otwieram ustawienia...")
elif wybor == 3:
    print("Zamykanie programu.")
else:
    print("Nieprawidłowy wybór!")

Porównanie instrukcji switch i if-elif-else

W wielu przypadkach zarówno switch, jak i if-elif-else mogą być używane zamiennie. Jednak istnieją pewne różnice:

  • switch jest bardziej czytelny i wydajny w przypadku wielu prostych przypadków, zwłaszcza w językach takich jak C++.
  • if-elif-else jest bardziej elastyczny i pozwala na bardziej złożone warunki.
  • W Pythonie switch nie jest dostępny, więc if-elif-else jest standardem.

Zastosowania instrukcji wyboru

Instrukcje wyboru znajdują zastosowanie w wielu różnych sytuacjach programistycznych:

  • Gry: Obsługa różnych akcji gracza w zależności od jego wyborów.
  • Interfejsy użytkownika: Obsługa różnych opcji menu.
  • Systemy sterowania: Decydowanie, jakie działania podjąć w zależności od stanu systemu.

Dobre praktyki przy używaniu instrukcji wyboru

  • Staraj się używać switch, gdy masz do czynienia z dużą liczbą prostych przypadków, aby kod był bardziej przejrzysty.
  • W przypadku złożonych warunków stosuj if-elif-else, aby lepiej kontrolować logikę programu.
  • Pamiętaj, aby używać instrukcji break w każdym przypadku w switch, aby uniknąć przypadkowego „przechodzenia” do kolejnych bloków.
Przykład: Błąd braku instrukcji break w C++
int dzien = 2;
switch (dzien) {
    case 1:
        std::cout << "Poniedziałek" << std::endl;
    case 2:
        std::cout << "Wtorek" << std::endl;  // Ten kod zostanie wykonany, nawet jeśli dzien == 1
    case 3:
        std::cout << "Środa" << std::endl;
        break;
    default:
        std::cout << "Nieprawidłowy dzień" << std::endl;
        break;
}

W tym przykładzie brak instrukcji break powoduje, że kod „przechodzi” do kolejnych przypadków, co może prowadzić do nieoczekiwanych rezultatów.

Podsumowanie

Instrukcje wyboru, takie jak switch i if-elif-else, są niezbędne do podejmowania decyzji w programach. Dzięki nim można łatwo kontrolować przepływ programu i dostosowywać jego działanie do różnych warunków. Zrozumienie, jak efektywnie korzystać z instrukcji wyboru, pozwala na tworzenie bardziej elastycznych i dynamicznych aplikacji. Pamiętaj, aby zawsze stosować dobre praktyki, takie jak używanie instrukcji break w switch i unikanie zbyt skomplikowanych warunków w if-elif-else, aby utrzymać kod przejrzysty i łatwy w utrzymaniu.

Następny temat ==> Wprowadzanie i wyprowadzanie danych



Spis Treści - Wstęp do programowania

Lekcja 3: Rozwiązywanie problemów i poprawność programów Lekcja 4: Praca z różnymi typami danych Lekcja 5: Obsługa plików i pamięci Lekcja 6: Zaawansowane techniki programistyczne Lekcja 7: Wskaźniki i pamięć dynamiczna Lekcja 8: Struktura kodu i abstrakcja Lekcja 9: Rekurencja i jej zastosowania Lekcja 10: Analiza wydajności algorytmów Lekcja 11: Technika "dziel i zwyciężaj" Lekcja 12: Struktury danych o dynamicznej budowie Lekcja 13: Struktury hierarchiczne: Drzewa Lekcja 14: Struktury danych z bibliotek Lekcja 15: Algorytmy z nawrotami Lekcja 16: Programowanie dynamiczne Lekcja 17: Programowanie zachłanne Lekcja 18: Praca z grafami

Jeśli chciałbyś być poinformowany o następnych kursach to zapisz się do naszego newslettera: