1. Volgorde van ifverklaringen

Soms moet een programma veel verschillende acties uitvoeren, afhankelijk van de waarde van een variabele of de waarde van een uitdrukking.

Laten we zeggen dat onze taak ongeveer zo is:

  • Als de temperatuur hoger is dan 20graden, trek dan een shirt aan
  • Als de temperatuur hoger is dan 10graden en lager dan (of gelijk aan) 20, trek dan een trui aan
  • Als de temperatuur hoger is dan 0graden en lager dan (of gelijk aan) 10, trek dan een regenjas aan
  • Als de temperatuur lager is dan 0graden, trek dan een jas aan.

Hier ziet u hoe dit in code kan worden weergegeven:

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-elseverklaringen kunnen in elkaar genest worden . Dit maakt het mogelijk om vrij complexe logica in een programma te implementeren.

Programmeurs schrijven deze constructie echter meestal een beetje 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");
}

De twee gegeven voorbeelden zijn gelijkwaardig, maar het tweede is gemakkelijker te begrijpen.


2. Nuances van het elseblok

Een belangrijk punt:

Als u geen accolades gebruikt in een if-elseconstructie, verwijst de elsenaar de dichtstbijzijnde vorige if.

Voorbeeld:

Onze code Hoe zal het werken
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");
}

Als je naar de code aan de linkerkant kijkt, lijkt het erop dat de schermuitvoer zal zijn "Je hoeft niet te werken". Maar dat is niet het geval. In werkelijkheid zijn het elseblok en de "Je hoeft niet te werken"-verklaring geassocieerd met de tweede (de dichtstbijzijnde) ifverklaring.

In de code aan de rechterkant zijn de bijbehorende ifen elserood gemarkeerd. Daarnaast zijn de accolades eenduidig ​​geplaatst, waardoor duidelijk is welke handelingen er uitgevoerd gaan worden. De tekenreeks U hoeft niet te werken wordt nooit weergegeven wanneer agedeze groter is dan 60.



3. Voorbeeld van het gebruik van een if-elsestatement

Omdat we de if-elseverklaring zo goed hebben onderzocht, laten we een voorbeeld geven:

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
   }
}
Het minimum van twee getallen weergeven