Rozdział 4 - Instrukcje warunkowe - Tablica prawdy operatorów warunkowych

Tablica prawdy to tabela informująca, jaką wartość ma wyrażenie, w którym wykorzystywany jest pewien operator z podanymi mu argumentami.

Poniższa tabela pokazuje możliwe wartości każdego z operatorów poznanych w tym rozdziale w zależności od tego, jakie wartości mają jego argumenty:

x y x || y x && y !x
false false false false true
true false true false false
false true true false true
true true true true false

Jak widać, operator && zwraca true tylko wtedy, gdy oba jego argumenty mają wartość true. Z kolei operator || zwraca true, gdy chociaż jeden z argumentów ma wartość true.

Przykład dla wartości a = 0 i b = 100:

a > 0 b >= 100 a > 0 ||
b >= 100
a > 0 &&
b >= 100
!(a > 0) !(b >= 100)
false true true false true false

Spójrzmy na przykład korzystający z operatorów warunkowych:

Nazwa pliku: DzienTygodniaOperatoryWarunkowe.java
import java.util.Scanner;

public class DzienTygodniaOperatoryWarunkowe {
  public static void main(String[] args) {
    int dzienTygodnia;

    System.out.println("Podaj numer dnia tygodnia:");
    dzienTygodnia = getInt();

    if (dzienTygodnia < 1 || dzienTygodnia > 7) {
      System.out.println("Nieprawidlowy dzien tygodnia.");
    } else if (dzienTygodnia == 5) {
      System.out.println("Jutro weeekeend! :)");
    } else if (!(dzienTygodnia == 6 || dzienTygodnia == 7)) {
      System.out.println("Praca :(");
    } else {
      System.out.println("Weekend! :)");
    }
  }

  public static int getInt() {
    return new Scanner(System.in).nextInt();
  }
}

W tym przykładzie korzystamy zarówno z operatora || (logiczne "lub"), jak i operatora zaprzeczenia !.

W pierwszej części instrukcji if:

if (dzienTygodnia < 1 || dzienTygodnia > 7) {

sprawdzamy, czy dzień tygodnia jest mniejszy od 1 lub większy od 7 – w takim przypadku informujemy użytkownika, że podany dzień jest nieprawidłowy.

W jednym z kolejnych warunków:

else if (!(dzienTygodnia == 6 || dzienTygodnia == 7)) {

sprawdzamy:

  • Czy dzisiejszy dzień to sobota lub niedziela?
  • a następnie:
  • Czy zaprzeczenie powyższego (z pomocą użycia operatora !) jest prawdą? Innymi słowy, sprawdzamy, czy dniem tygodnia nie jest ani sobota, ani niedziela.

W wyniku tak zapisanych warunków, instrukcja związana z tą sekcją else if będzie wykonana wtedy, gdy zmienna dzienTygodnia będzie miała wartość z inną niż 6 i 7.

Dwa przykładowe wykonanie programu:

Podaj numer dnia tygodnia: 5 Jutro weeekeend! 🙂
Podaj numer dnia tygodnia: 6 Weekend! 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.