Spis treści
- Rozdział 4 - Instrukcje warunkowe
- Podstawy instrukcji warunkowych
- Operatory relacyjne
- Typ boolean
- Warunki instrukcji if
- Operatory warunkowe i operator logiczny !
- Tablica prawdy operatorów warunkowych
- Nawiasy i priorytety operatorów warunkowych
- Short-circuit evaluation
- Zagnieżdżanie instrukcji warunkowych
- Bloki kodu i zakresy zmiennych
- Instrukcja switch
- Trój-argumentowy operator logiczny
- Podsumowanie
- Pytania
- Zadania
Na początku rozdziału o instrukcjach warunkowych wspomnieliśmy, że warunek instrukcji warunkowej musi mieć wartość prawda (true) lub fałsz (false).
Oznacza to, że w warunku instrukcji warunkowej musimy umieścić wyrażenie, którego wartość będzie miała wartość true bądź false.
Możemy, tak jak już widzieliśmy, zapisać wyrażenie z użyciem operatora relacyjnego:
public class SprawdzMianownik { public static void main(String[] args) { double licznik, mianownik; licznik = 5; mianownik = 0; if (mianownik != 0) { System.out.println("Wynik: " + licznik / mianownik); } else { System.out.println("Mianownik nie moze byc = 0!"); } } }
Możemy też skorzystać ze zmiennej typu boolean i przyrównać jej wartość do wartości true bądź false:
public class BooleanWIf { public static void main(String[] args) { boolean czyPadaDeszcz = false; if (czyPadaDeszcz == true) { System.out.println("Wez parasol!"); } else { System.out.println("Zostaw parasol w domu."); } } }
Powyższy warunek czyPadaDeszcz == true jest co prawda poprawny, ale jest nadmiarowy – w końcu sama zmienna czyPadaDeszcz niesie już informację typu true / false – możemy więc zapisać powyższy warunek w następujący, skrócony sposób:
public class BooleanWIf { public static void main(String[] args) { boolean czyPadaDeszcz = false; if (czyPadaDeszcz) { System.out.println("Wez parasol!"); } else { System.out.println("Zostaw parasol w domu."); } } }
Usunęliśmy operator relacyjny == przyrównujący wartość zmiennej czyPadaDeszcz do wartości true. Kod jest poprawny, ponieważ warunek instrukcji warunkowej to nadal jedna z dwóch możliwych wartości – true bądź false, ponieważ takie właśnie wartości mogą przechowywać zmienne typu boolean. Kod działa tak samo, jak jego poprzednia wersja, ale jest krótszy.
W ten właśnie sposób zapisujemy zawsze warunki w instrukcjach if, jeżeli sprawdzamy wartość zmiennej typu boolean – nie powinniśmy nigdy zapisywać warunków ze zmiennymi typu boolean w postaci zmiennaTypuBoolean == true (bądź false).