Kurs Java

Warunek If Else

Instrukcja if else służy do sprawdzania warunków. Weryfikuje, czy dany warunek zwraca wartość true lub false, czyli najprościej mówiąc sprawdza czy jest on prawdziwy, czy fałszywy. W praktyce rozróżniamy kilka podtypów tej instrukcji i tradycyjnie po kolei będziemy je omawiać.
Zastosowanie. Instrukcje warunkowe pozwalają nam wybrać te miejsca w kodzie, które mają być wykonane tylko w przypadku zaistnienia określonego warunku. Trzeba jednak pamiętać, że nadmierne stosowanie tej instrukcji jest nieczytelne i najczęściej oznacza błędnie zaprojektowany kod.
Java zawiera następujące instrukcje warunkowe:
  • Instrukcja if - używana, aby wykonać konkretny blok kodu, jeśli określony warunek jest prawdziwy
    if (warunek) {
      // Blok kodu jest wywoływany, jeśli warunek jest prawdziwy
    }
    
    Zobaczmy jak to wygląda na przykładzie. Definiujemy zmienną, która jest zwykła wartością liczbową. Następnie korzystając z operatora sprawdzamy, czy ta wartość jest większa od interesującej nas stałej wartości.
    int numberOfItems = 120;  
    if (numberOfItems > 100) {  
        System.out.println("Liczba itemów większa niż 100. Warunek prawdziwy.");  
    }  
    
    Widzimy, że jeśli wartość jest większa, to program wejdzie do bloku kodu umieszczonego pomiędzy nawiasami klamrowymi i wydrukuje na ekranie opowiedni zapis. Jeśli warunek byłby fałszywy cały blok kodu jest pomijany. Wykonywana jest dalsza część kodu (kolejna instrukcja po if).
  • Instrukcji if ... else używamy, aby wykonać konkretny blok kodu, jeśli określony warunek jest fałszywy. Tak naprawdę jest to nadal instrukcja if, ale o rozszerzonej funkcjonalności.
    if (warunek) {
        // Blok kodu jest wywoływany, kiedy warunek jest prawdziwy
    } else { 
        // Blok kodu jest wywoływany, kiedy warunek jest fałszywy
    } 
    
    Rozpatrzmy kolejny przykład. Ponownie definiujemy zmienną, która jest zwykła wartością liczbową. Korzystając z operatora sprawdzamy, czy ta wartość jest większa od interesującej nas stałej wartości.
    int numberOfItems = 90;
    if (numberOfItems > 100) {
        System.out.println("Liczba itemów większa niż 100.");
    } else {
        System.out.println("Liczba itemów mniejsza lub równa 100.");
    }
    
    Widzimy, że jeśli wartość jest większa, to program wejdzie do bloku kodu umieszczonego pomiędzy nawiasami klamrowymi bezpośrednio po instrukcji if i wydrukuje na ekranie informację, że "liczba itemów jest większa niż 100". Zmienna numberOfItems ma jednak wartość 90. Czyli jak wynika z logicznych warunków matematyki zapis 90 > 100 jest fałszywy, bo 90 jest mniejsze od 100. W związku z tym Java po stwierdzeniu, że warunek jest fałszywy, pominie wykonanie bloku kodu umieszczonego po if i wejdzie dopiero do bloku umieszczonego po else.
  • Instrukcji if ... else ... if używamy, aby pójść jeszcze o krok dalej i określić wykonanie odpowiedniego bloku kodu dla kolejno weryfikowanych i dokładnie sprecyzowanych warunków. Jeśli którykolwiek z warunków zwraca prawdę, wówczas kolejne nie są już sprawdzane.
    if (warunek1) {
      // Blok kodu jest wywoływany, jeśli warunek1 jest prawdziwy
    } else if (warunek2) {
      // Blok kodu jest wywoływany, jeśli warunek2 jest prawdziwy
    } else {
      // Blok kodu jest wywoływany, jeśli warunek1 jest fałszwy oraz warunek2 jest fałszywy
    }
    
    Ponownie obejrzyjmy przykład. Kolejny raz definiujemy zmienną, która jest zwykła wartością liczbową. Korzystając z operatora sprawdzamy, czy ta wartość jest mniejsza od interesującej nas stałej wartości.
     
    int numberOfItems = 220;  
    if (numberOfItems < 100) {
        System.out.println("Liczba itemów mniejsza niż 100.");
    } else if (numberOfItems < 200) {
        System.out.println("Liczba itemów mniejsza niż 200.");
    } else {
        System.out.println("Liczba itemów nie jest mniejsza od 100 ani od 200. Jest większa bądź równa 200.");
    } 
    
    Teraz mamy już trzy możliwe rozwiązania:
    • Program sprawdza czy wartość jest mniejsza od założonej stałej liczby 100. Jak widzimy nie jest mniejsza, więc ten warunek nie jest spełniony (nie jest prawdziwy). Tym samym pierwszy blok kodu zostaje pominięty, a program przesuwa się dalej.
    • Program sprawdza czy wartość jest mniejsza od założonej stałej liczby 200. Ponownie jak poprzednio nasza zmienna nie jest mniejsza, więc ten warunek również nie jest spełniony (nie jest prawdziwy). Tym samym driugi blok kodu zostaje pominięty, a program przesuwa się dalej.
    • Program nie sprawdza już innego warunku. Po prostu wykonywany jest blok kodu po else.
    Oczywiście bloków if ... else może być więcej niż jeden. Wszystko zależy od tego ile warunków alternatywnych chcemy sprawdzić zanim przejdziemy dalej.
Appa Notka. Analizujemy kolejne kursy na Udemy, wykorzystując nasze doświadczenie zawodowe do oceny ich efektywności i popularności wśród uczestników. Z dużym zaangażowaniem selekcjonujemy te, które naszym zdaniem są najbardziej efektywne i jednocześnie cieszą się uznaniem uczestników.

Poniższy kurs "[2023] Java od podstaw - zbuduj własne aplikacje!" jest efektem tej głębokiej analizy i prezentuje idealne połączenie wysokiej jakości edukacyjnej z aktualnymi trendami i wymaganiami rynkowymi. Około 7 000 kursantów, ocena bliska 5.0!

Przykład w programie

Teraz zobaczmy jak będzie to wyglądało po wpięciu nowego kodu do programu z rozdziału Hello JavAPPa:
public class Start {

   public static void main(String[] args) {
       System.out.println("Hello JavAPPa");

       int numberOfItems = 220;  
       if (numberOfItems < 100) {
           System.out.println("Liczba itemów mniejsza niż 100.");
       } else if (numberOfItems < 200) {
           System.out.println("Liczba itemów mniejsza niż 200.");
       } else {
           System.out.println("Liczba itemów nie jest mniejsza od 100 ani od 200. Jest większa bądź równa 200.");
       } 
   }
}
[Film bez dźwięku] [720p]
Linki:
https://www.w3schools.com/java/java_conditions.asp
https://www.javatpoint.com/java-if-else
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html
Masz pytanie dotyczące tego rozdziału? Zadaj je nam!
Masz pytanie dotyczące prezentowanego materiału?
Coś jest dla Ciebie niejasne i Twoje wątpliwości przeszkadzają Ci w pełnym zrozumieniu treści?
Napisz do nas maila, a my chętnie znajdziemy odpowiednie rozwiązanie.
Najciekawsze pytania wraz z odpowiedziami będziemy publikować pod rozdziałem.
Nie czekaj. Naucz się programować jeszcze lepiej.
kursjava@javappa.com
Gdzieś czytałem, że nadużywanie if-ów to nie jest dobra praktyka. Czy warto się w ogóle uczyć tej instrukcji?
Zgadza się, zdecydowanie nie powinniśmy nadużywać tej instrukcji. Nie oznacza to jednak, że mamy w ogóle z niej rezygnować, ponieważ jest ona podstawowym sprawdzeniem, czy powinniśmy wybrać ścieżkę A czy B w ramach procesu decyzyjnego.

Natomiast, jeśli wraz z biegiem czasu i rozwojem kodu okazuje się, że ścieżek może być więcej i należałoby użyć kolejnych sekcji else if, to prawdopodobnie nasz kod nie jest dobrze zaprojektowany. W takiej sytuacji należy rozpatrzyć inne możliwości, na przykład czy nie było by dobrze zastosować wzorca stanu.

Co ciekawe sytuacja z nadużywaniem if-ów poprawiła się nieco odkąd na rynku pojawiła się Java 8 i wyższe wersje, ponieważ one umożliwiają nam użycie filtrów na strumieniach z danymi, co często eliminuje tworzenie kolejnych segmentów if else.


Stale się rozwijamy, a więc bądź na bieżąco!
Na ten adres będziemy przesyłać informacje o ważniejszych aktualizacjach, a także o nowych materiałach pojawiających się na stronie.
Polub nas na Facebooku:
Nasi partnerzy: stackshare
Javappa to również profesjonalne usługi programistyczne oparte o technologie JAVA. Jeśli chesz nawiązać z nami kontakt w celu uzyskania doradztwa bądź stworzenia aplikacji webowej powinieneś poznać nasze doświadczenia.
Kliknij O nas .


Pozycjonowanie stron: Grupa TENSE