Podsumowanie

Oto zapis przykładowej instrukcji warunkowej w języku Java:

Linia 1. int x znak równości 5 średnik. Linia 3. if otwórz nawias okrągły x otwórz nawias ostrokątny 10 zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba jest mniejsza od 10 cudzysłów zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy.

Z przykładu wynika, że zmienna x inicjowanainicjacja zmiennejinicjowana jest wartością 5. Zapisane w linii 3. wyrażenie warunkowe będzie prawdziwe, gdy liczba będzie mniejsza od 10. W naszym przykładzie po sprawdzeniu warunku zostanie zwrócona wartość true.

Definiowanie warunków

Linia 1. int x znak równości 5 średnik. Linia 3. if otwórz nawias okrągły x zamknij nawias ostrokątny 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. prawy ukośnik prawy ukośnik warunek niespełniony. Linia 5. zamknij nawias klamrowy. Linia 7. if otwórz nawias okrągły x otwórz nawias ostrokątny 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 8. prawy ukośnik prawy ukośnik warunek niespełniony. Linia 9. zamknij nawias klamrowy. Linia 11. if otwórz nawias okrągły x zamknij nawias ostrokątny znak równości 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 12. prawy ukośnik prawy ukośnik warunek spełniony. Linia 13. zamknij nawias klamrowy. Linia 15. if otwórz nawias okrągły x otwórz nawias ostrokątny znak równości 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 16. prawy ukośnik prawy ukośnik warunek spełniony. Linia 17. zamknij nawias klamrowy. Linia 19. if otwórz nawias okrągły x znak równości znak równości 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 20. prawy ukośnik prawy ukośnik warunek spełniony. Linia 21. zamknij nawias klamrowy. Linia 23. if otwórz nawias okrągły x wykrzyknik znak równości 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 24. prawy ukośnik prawy ukośnik warunek niespełniony. Linia 25. zamknij nawias klamrowy.
Ważne!

Zwróć uwagę na dwie ostatnie instrukcje warunkowe.

Operator != odczytujemy jako „różne od”. Oznacza to, że sprawdzane wyrażenie rozumiemy w następujący sposób: „jeżeli jest różne od 5”.

Operator == używany jest do porównywania wartości w celu sprawdzenia, czy są one takie same. Nie wolno mylić go z operatorem przypisania wartości (=).

Złożone wyrażenia logiczne

Instrukcje warunkowe zagnieżdżone

Przykład użycia zagnieżdżonych instrukcji warunkowych:

Linia 1. public class Start otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. int x znak równości 5 średnik. Linia 4. if otwórz nawias okrągły x otwórz nawias ostrokątny 10 zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. if otwórz nawias okrągły x zamknij nawias ostrokątny 3 zamknij nawias okrągły otwórz nawias klamrowy. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba jest większa niż 3 i mniejsza niż 10 cudzysłów zamknij nawias okrągły średnik. Linia 7. zamknij nawias klamrowy. Linia 8. zamknij nawias klamrowy. Linia 9. zamknij nawias klamrowy. Linia 10. zamknij nawias klamrowy.

Łączenie warunków za pomocą operatorów logicznych

Istnieje możliwość stosowania operatorów logicznych w celu sprawdzenia większej liczby warunków. Przykładem operatora logicznego jest && (oznaczający koniunkcję, odczytywaną jako „i”).

Przykład wyrażenia logicznego, w którym wykorzystano operator „i”:

Linia 1. public class Start otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. int x znak równości 5 średnik. Linia 4. if otwórz nawias okrągły x otwórz nawias ostrokątny 10 ampersant ampersant x zamknij nawias ostrokątny 3 zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba jest większa niż 3 i mniejsza niż 10 cudzysłów zamknij nawias okrągły średnik. Linia 6. zamknij nawias klamrowy. Linia 7. zamknij nawias klamrowy. Linia 8. zamknij nawias klamrowy.

Zapisana w przykładzie instrukcja warunkowa sprawdza, czy zmienna x jednocześnie jest większa od 3 i jest mniejsza od 10, czyli należy do przedziału (3, 10).

Kolejnym operatorem logicznym jest || (oznaczający alternatywę, odczytywaną jako „lub”).

Oto przykład wyrażenia logicznego, w którym wykorzystano operator  „lub”:

Linia 1. int x znak równości 0 średnik. Linia 3. if otwórz nawias okrągły x zamknij nawias ostrokątny 0 kreska pionowa kreska pionowa x otwórz nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba nie jest zerem cudzysłów zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy else otwórz nawias klamrowy. Linia 6. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba jest zerem cudzysłów zamknij nawias okrągły średnik. Linia 7. zamknij nawias klamrowy.

Zapisana w tym przykładzie instrukcja warunkowa sprawdza, czy zmienna x ma wartość mniejszą od 0 lub większą od 0. Jeżeli którykolwiek z tych warunków jest spełniony, alternatywa uznawana jest za prawdziwą (przypisywana jej zostaje wartość logiczna true). Ponieważ wartość zmiennej x to 0, warunek nie zostanie spełniony i wykonana będzie instrukcja następująca po słowie kluczowym else.

Instrukcja if‑else

Jeżeli wyrażenie logiczne zapisane w instrukcji warunkowej nie zostanie spełnione, można zastosować instrukcję if‑else, którą odczytujemy jako „w przeciwnym razie”.

Oto przykład użycia instrukcji if‑else w języku Java:

Linia 1. public class Main otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. int x znak równości 5 średnik. Linia 4. if otwórz nawias okrągły x otwórz nawias ostrokątny 10 ampersant ampersant x zamknij nawias ostrokątny 3 zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba jest większa niż 3 i mniejsza niż 10 cudzysłów zamknij nawias okrągły średnik. Linia 6. zamknij nawias klamrowy else otwórz nawias klamrowy. Linia 7. System kropka out kropka println otwórz nawias okrągły cudzysłów Liczba jest mniejsza lub równa 3 lub większa lub równa 10 cudzysłów zamknij nawias okrągły średnik. Linia 8. zamknij nawias klamrowy. Linia 9. zamknij nawias klamrowy. Linia 10. zamknij nawias klamrowy.

Przykładowy problem

Przyjrzyjmy się bardziej rozbudowanemu przykładowi. Wyobraźmy sobie taką sytuację: bilet lotniczy kosztuje 210 zł – osoby, które chcą przewieźć bagaż cięższy niż 5 kg, muszą do ceny podstawowej dopłacić 80 zł. Kryterium to jest warunkiem i można zapisać go takim zdaniem: jeśli osoba podróżuje z bagażem cięższym niż 5 kg, to cena biletu wzrasta o 80 zł.

Pasażerowie mogą dodatkowo ubezpieczyć swój bagaż za 50 zł, ale jeśli dopłacają już za nadbagaż, to ubezpieczenie kosztuje tylko 35 zł. Osoby podróżujące klasą biznesową w cenie biletu mają już ubezpieczenie i opłatę za nadbagaż.

Korzystając z samej instrukcji warunkowej, musielibyśmy stworzyć szereg warunków:

Linia 1. public class Start otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. doZaplaty znak równości cena średnik. Linia 4. if otwórz nawias okrągły klasaBiznes znak równości znak równości false zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. if otwórz nawias okrągły wagaBagazu zamknij nawias ostrokątny 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 6. doZaplaty znak równości cena plus 80 średnik. Linia 7. zamknij nawias klamrowy. Linia 9. if otwórz nawias okrągły ubezpieczenie znak równości znak równości true zamknij nawias okrągły otwórz nawias klamrowy. Linia 10. doZaplaty plus znak równości 50 średnik. Linia 11. if otwórz nawias okrągły wagaBagazu zamknij nawias ostrokątny 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 12. doZaplaty minus znak równości 15 średnik. Linia 13. zamknij nawias klamrowy. Linia 14. zamknij nawias klamrowy. Linia 15. zamknij nawias klamrowy. Linia 16. zamknij nawias klamrowy. Linia 17. zamknij nawias klamrowy.

Wykorzystując operatory logiczne, możemy znacznie uprościć kod obliczający cenę biletu:

Linia 1. public class Start otwórz nawias klamrowy. Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 3. int doZaplaty znak równości cena średnik. Linia 4. if otwórz nawias okrągły klasaBiznes znak równości znak równości false ampersant ampersant wagaBagazu zamknij nawias ostrokątny 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. doZaplaty znak równości cena plus 80 średnik. Linia 6. zamknij nawias klamrowy. Linia 8. if otwórz nawias okrągły klasaBiznes znak równości znak równości false ampersant ampersant ubezpieczenie znak równości znak równości true zamknij nawias okrągły otwórz nawias klamrowy. Linia 9. doZaplaty znak równości doZaplaty plus 50 średnik. Linia 10. if otwórz nawias okrągły wagaBagazu zamknij nawias ostrokątny 5 zamknij nawias okrągły otwórz nawias klamrowy. Linia 11. doZaplaty znak równości doZaplaty minus 15 średnik. Linia 12. zamknij nawias klamrowy. Linia 13. zamknij nawias klamrowy. Linia 14. zamknij nawias klamrowy. Linia 15. zamknij nawias klamrowy.

Słownik

inicjacja zmiennej
inicjacja zmiennej

nadanie zmiennej wartości początkowej