Programowanie to sztuka tworzenia programów które potrafią podejmować decyzje. Wyobraź sobie program który zawsze robi dokładnie to samo – byłby bezużyteczny. Instrukcje warunkowe to narzędzia dzięki którym Twój kod może wybierać różne ścieżki działania w zależności od sytuacji.
Dlaczego instrukcje warunkowe są ważne?
W prawdziwym życiu ciągle podejmujemy decyzje: „Jeśli pada deszcz, wezmę parasol”, „Jeśli jest piątek, idę na pizzę”. Programy działają podobnie – muszą reagować na różne sytuacje. Bez instrukcji warunkowych każdy program wykonywałby się identycznie za każdym razem.
Co się nauczysz:
- Jak działa instrukcja if i kiedy jej używać
- Różnice między if, else if i else
- Kiedy switch jest lepszy od if
- Jak unikać typowych błędów początkujących
- Praktyczne przykłady z życia codziennego
Wymagania wstępne:
Poziom: Całkowite podstawy – twój pierwszy kontakt z programowaniem
Potrzebujesz znać: Podstawy Java (zmienne, typy danych), jak uruchomić prosty program
Instrukcja if – podstawa podejmowania decyzji
Instrukcja if to najważniejsza instrukcja warunkowa. Działa jak pytanie: „Czy coś jest prawdą?”. Jeśli tak – wykonaj kod, jeśli nie – pomiń go.
public class PodstawyIf { public static void main(String[] args) { int wiek = 18; // Podstawowy if if (wiek >= 18) { System.out.println("Jesteś pełnoletni!"); } // Ten kod wykona się zawsze System.out.println("Koniec programu"); } }
If, else if, else – więcej możliwości
Życie rzadko ma tylko dwie opcje. Dlatego Java oferuje else if i else do obsługi wielu scenariuszy.
public class WiekKategorie { public static void main(String[] args) { int wiek = 25; if (wiek < 13) { System.out.println("Jesteś dzieckiem"); } else if (wiek < 18) { System.out.println("Jesteś nastolatkiem"); } else if (wiek < 65) { System.out.println("Jesteś dorosły"); } else { System.out.println("Jesteś seniorem"); } } }
Instrukcja switch - elegancka alternatywa
Gdy masz wiele konkretnych wartości do sprawdzenia, switch może być czytelniejszy niż łańcuch if-else if.
public class DniTygodnia { public static void main(String[] args) { int dzien = 3; // 1=poniedziałek, 2=wtorek, itd. switch (dzien) { case 1: System.out.println("Poniedziałek - ciężki start"); break; case 2: System.out.println("Wtorek - już lepiej"); break; case 3: System.out.println("Środa - połowa tygodnia"); break; case 6: case 7: System.out.println("Weekend - super!"); break; default: System.out.println("Normalny dzień roboczy"); } } }
Operatory porównania - narzędzia do warunków
Żeby tworzyć sensowne warunki, musisz znać operatory porównania. To "słowa" którymi mówisz Java czego szukasz.
Operator | Znaczenie | Przykład |
---|---|---|
== | równe | wiek == 18 |
!= | różne | nazwa != "admin" |
> | większe | punkty > 100 |
< | mniejsze | temperatura < 0 |
>= | większe lub równe | wiek >= 18 |
<= | mniejsze lub równe | ocena <= 6 |
Łączenie warunków - operatory logiczne
Czasem jeden warunek to za mało. Java pozwala łączyć warunki operatorami logicznymi.
public class ZlozoneWarunki { public static void main(String[] args) { int wiek = 20; boolean maLicencje = true; String miasto = "Warszawa"; // Operator && (AND) - oba warunki muszą być prawdziwe if (wiek >= 18 && maLicencje) { System.out.println("Możesz prowadzić samochód"); } // Operator || (OR) - wystarczy jeden prawdziwy warunek if (miasto.equals("Warszawa") || miasto.equals("Kraków")) { System.out.println("Mieszkasz w dużym mieście"); } // Operator ! (NOT) - odwraca warunek if (!maLicencje) { System.out.println("Musisz zdać egzamin na prawo jazdy"); } } }
Kiedy używać if, a kiedy switch?
- Sprawdzasz zakresy wartości (wiek > 18)
- Łączysz różne warunki (&&, ||)
- Porównujesz ze sobą zmienne
Używaj switch gdy:
- Masz konkretne, znane wartości
- Sprawdzasz jedną zmienną
- Masz wiele opcji do wyboru
Częste błędy początkujących
// BŁĄD! switch (ocena) { case 5: System.out.println("Bardzo dobry"); // Brak break - kod "przepadnie" dalej! case 4: System.out.println("Dobry"); break; }
// BŁĄD! if (imie == "Jan") { } // POPRAWNIE! if (imie.equals("Jan")) { }
Tak! To się nazywa zagnieżdżanie. Ale uważaj - za dużo poziomów robi kod nieczytelnym. Lepiej użyj operatorów && lub ||.
W Java 6 i wcześniejszych switch nie obsługiwał String. W Java 7 (2011) dodano tę funkcję. Upewnij się że używasz odpowiedniej wersji Java.
Nic! Else nie jest obowiązkowe. Jeśli warunek w if jest fałszywy, program po prostu przejdzie dalej.
Nie, switch nie obsługuje boolean. Boolean ma tylko dwie wartości (true/false), więc lepiej użyj if.
Użyj operatora modulo: if (liczba % 2 == 0). Jeśli reszta z dzielenia przez 2 wynosi 0, liczba jest parzysta.
Przydatne zasoby:
- Oracle - The if-then Statement
- Oracle - The switch Statement
- Java Language Specification - Expressions
🚀 Zadanie dla Ciebie
Stwórz prosty kalkulator ocen:
Napisz program który:
- Pobiera punkty z testu (0-100)
- Używa if-else if do przypisania oceny (90-100=5, 80-89=4, itd.)
- Używa switch do wyświetlenia komentarza dla każdej oceny
- Obsługuje błędne wartości (ujemne, powyżej 100)
Bonus: Dodaj sprawdzenie czy ocena to zaliczenie (>= 3) czy niezaliczenie.
Masz pytania o instrukcje warunkowe? A może udało Ci się rozwiązać zadanie? Napisz w komentarzach - chętnie pomogę!