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ägt 20, ziehen Sie einen Pullover an
  • Wenn die Temperatur mehr als 0Grad und weniger als (oder gleich) beträgt 10, 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.

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");
}

Die beiden angegebenen Beispiele sind gleichwertig, das zweite ist jedoch einfacher zu verstehen.


2. Nuancen des elseBlocks

Ein wichtiger Punkt:

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
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");
}

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. Die Zeichenfolge You don't have to work wird nie angezeigt, wenn agesie größer als ist 60.


4
Aufgabe
Java Syntax,  Level 4Lektion 1
Gesperrt
Dieses Alter funktioniert bei mir nicht…
Manchmal würden wir alle gern unser Alter ändern. Zuerst wollen sie dir keine Zigaretten oder Bier verkaufen. Dann werden deine Haare dünner und dein Rücken beginnt zu schmerzen! Ein Programmierer kann vielleicht die Zeit nicht kontrollieren, aber er hat die totale Kontrolle über die Daten in Programmen. In dieser Aufgabe korrigieren wir einen Fehler, so dass die Altersvariable eines Personenobjekts einen anderen Wert erhält.

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
   }
}
Anzeige von mindestens zwei Zahlen