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 worden genest. Dit maakt het mogelijk om vrij complexe logica in een programma te implementeren.
Maar het bovenstaande voorbeeld is ook interessant omdat we de code iets eenvoudiger kunnen maken door de accolades weg te laten:
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");
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");
Alle drie deze voorbeelden zijn equivalent.
2. Nuances van het elseblok
Als u geen accolades gebruikt in een if-elseconstructie, verwijst de elsenaar de dichtstbijzijnde vorige if.
Voorbeeld:
| Onze code | Hoe zal het werken |
|---|---|
|
|
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. Wordt de string U hoeft niet te werken 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
}
}
GO TO FULL VERSION