1. Reihenfolge der ifAussagen
Manchmal muss ein Programm abhängig vom Wert einer Variablen oder dem Wert eines Ausdrucks viele verschiedene Aktionen ausführen.
Nehmen wir an, unsere Aufgabe sieht etwa so aus:
- Wenn die Temperatur über
20Grad liegt, ziehen Sie ein Hemd an - Wenn die Temperatur mehr als
10Grad und weniger als (oder gleich) beträgt20, ziehen Sie einen Pullover an - Wenn die Temperatur mehr als
0Grad und weniger als (oder gleich) beträgt10, ziehen Sie einen Regenmantel an - Wenn die Temperatur unter
0Grad liegt, ziehen Sie einen Mantel an.
So kann dies im Code dargestellt werden:
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");
}
}
If-elseAnweisungen können ineinander verschachtelt werden. Dadurch ist es möglich, recht komplexe Logik in einem Programm zu implementieren.
Das obige Beispiel ist aber auch insofern interessant, als wir den Code etwas einfacher gestalten können, indem wir die geschweiften Klammern weglassen:
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");
Allerdings schreiben Programmierer dieses Konstrukt normalerweise etwas anders:
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");
Alle drei dieser Beispiele sind gleichwertig.
2. Nuancen des elseBlocks
Wenn in einem Konstrukt keine geschweiften Klammern verwendet werden if-else, bezieht sich das elseauf das nächste vorherige if.
Beispiel:
| Unser Code | Wie wird es funktionieren |
|---|---|
|
|
Wenn Sie sich den Code auf der linken Seite ansehen, scheint die Bildschirmausgabe „Sie müssen nicht arbeiten“ zu lauten. Aber das ist nicht der Fall. In Wirklichkeit elsesind die Blockade und die Aussage „Du musst nicht arbeiten“ mit der zweiten (nächsteren) ifAussage verbunden.
Im Code rechts sind die zugehörigen ifund elserot hervorgehoben. Darüber hinaus sind die geschweiften Klammern eindeutig platziert und zeigen deutlich, welche Aktionen ausgeführt werden. Wird die Zeichenfolge You don't have to work nie angezeigt, wenn agesie größer als ist 60?
3. Beispiel für die Verwendung einer if-elseAnweisung
Da wir die if-elseAussage so gut untersucht haben, geben wir ein Beispiel:
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