1. Volgorde van if
verklaringen
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
20
graden, trek dan een shirt aan - Als de temperatuur hoger is dan
10
graden en lager dan (of gelijk aan)20
, trek dan een trui aan - Als de temperatuur hoger is dan
0
graden en lager dan (of gelijk aan)10
, trek dan een regenjas aan - Als de temperatuur lager is dan
0
graden, 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-else
verklaringen 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 else
blok
Als u geen accolades gebruikt in een if-else
constructie, verwijst de else
naar 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 else
blok en de "Je hoeft niet te werken"-verklaring geassocieerd met de tweede (de dichtstbijzijnde) if
verklaring.
In de code aan de rechterkant zijn de bijbehorende if
en else
rood 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 age
deze groter is dan 60
?
3. Voorbeeld van het gebruik van een if-else
statement
Omdat we de if-else
verklaring 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