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).