1. Sekwencja if-ov

Czasami program musi zrobić wiele różnych rzeczy w zależności od wartości jakiejś zmiennej lub wartości jakiegoś wyrażenia.

Powiedzmy, że zadanie wygląda tak:

  • Jeśli temperatura jest powyżej 20stopni - załóż koszulę
  • Jeśli temperatura jest powyżej 10stopni i niższa (lub równa) 20- załóż sweter
  • Jeśli temperatura jest wyższa od 0stopni i niższa (lub równa) 10- załóż płaszcz przeciwdeszczowy
  • Jeśli temperatura spadnie poniżej 0stopni, załóż płaszcz.

Jak można to przedstawić w kodzie:

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else { // Here the temperature is less than (or equal to) 20
   if (temperature > 10) {
      System.out.println("put on a sweater");
   } else { // Here the temperature is less than (or equal to) 10
      if (temperature > 0) {
         System.out.println("put on a raincoat");
      } else // Here the temperature is less than 0
         System.out.println("put on a coat");
   }
}

Operatory If-else mogą być zagnieżdżane jeden w drugim , a tym samym implementować dość złożoną logikę w programie.

Chociaż programiści zwykle piszą taką konstrukcję trochę inaczej:

int temperature = 9;

if (temperature > 20) {
   System.out.println("put on a shirt");
} else if (temperature > 10) { // Here the temperature is less than (or equal to) 20
   System.out.println("put on a sweater");
} else if (temperature > 0) { // Here the temperature is less than (or equal to) 10
   System.out.println("put on a raincoat");
} else { // Here the temperature is less than 0
   System.out.println("put on a coat");
}

Dwa podane przykłady są równoważne, ale drugi jest łatwiejszy do zrozumienia.


2. Niuanseelse

Ważny punkt:

Jeśli w konstrukcji if-elsenie ma nawiasów klamrowych , elseodnosi się do poprzedniego (najbliższego) if-y.

Przykład:

Nasz kod Jak to będzie działać
int age = 65;

if (age < 60)
   if (age > 20)
      System.out.println("You must work");
else
   System.out.println("You don't have to work");
int age = 65;

if (age < 60) {
   if (age > 20)
     System.out.println("You must work");
   else
     System.out.println("You don't have to work");
}

Jeśli spojrzysz na kod po lewej stronie, wydaje się, że na ekranie pojawi się komunikat „Możesz nie pracować”. Jednak tak nie jest. W rzeczywistości elsepolecenie „Nie możesz pracować” odnosi się do drugiego (najbliższego) if-y.

W kodzie po prawej stronie powiązane ifi są podświetlone na czerwono else. Specjalnie umieszczone są również nawiasy, które jednoznacznie pokazują kolejność wykonywania czynności. Napis May not work nie pojawia się nigdy na ekranie agewięcej 60.


4
Zadanie
Składnia Java,  poziom 4lekcja 1
Niedostępne
Ten wiek źle na mnie działa...
Czasami każdy z nas chciałby być w innym wieku. Albo nie chcą ci sprzedać papierosów i piwa... ...albo zaczynasz siwieć i niemiłosiernie bolą Cię plecy. Programista niekoniecznie może mieć kontrolę nad czasem, ale z pewnością może kontrolować dane w programach. W tym zadaniu poprawimy pewien błąd, przez który zmienna wiek obiektu klasy Osoba otrzyma inną wartość.

3. Przykład użycia operatoraif-else

Ponieważ tak dobrze przeanalizowaliśmy operatora if-else, podajmy przykład:

import java.util.Scanner;
public class Solution {
   public static void main(String[] args) {
     Scanner console = new Scanner(System.in); // Create a Scanner object
     int a = console.nextInt(); // Read the first number from the keyboard
     int b = console.nextInt(); // Read the second number from the keyboard
     if (a < b)                   // If a is less than b
       System.out.println(a);     // we display a
     else                         // otherwise
       System.out.println(b);     // we display b
   }
}
Drukowanie najmniejszej z dwóch liczb