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
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ć |
|---|---|
|
|
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.
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
}
}
GO TO FULL VERSION