Programmeren in Java/Conditionele blokken: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
DimiC88 (overleg | bijdragen)
Geen bewerkingssamenvatting
Label: bewerking met nieuwe wikitekstmodus
DimiC88 (overleg | bijdragen)
Geen bewerkingssamenvatting
Label: bewerking met nieuwe wikitekstmodus
Regel 95:
 
== Else if ==
En dan is er ook nog de ''else if''. De ''else if'' is een soort van ''if'' statement die je net zoals de ''else'' kunt laten uitvoeren als de booleaanse uitdrukking van je ''if'' ''false'' geeft als resultaat. Het verschil met ''else'' is dat je bij een ''else if'' ook een booleaanse uitdrukking moet meegeven.
 
<syntaxhighlight lang="Java">
if (<booleaanse uitdrukking>) {
// De code die moet worden uitgevoerd als de uitdrukking true heeft als resultaat.
} else if (<booleaanse uitdrukking>) {
// De code die moet worden uitgevoerd als de uitdrukking true heeft als resultaat en de uitdrukking van de vorige if ''false'' heeft als resultaat
} else {
// De code die moet worden uitgevoerd als de uitdrukking van de if False heeft als resultaat.
}
</syntaxhighlight>
We kunnen daardoor het vorige voorbeeld waarbij we op het scherm tonen of een persoon meerderjarig of minderjarig is uitbreiden met op het scherm te tonen of een persoon een vijftigplusser is.
 
<syntaxhighlight lang="Java" highlight=4,7-8>
public class Main {
 
public static void main(String[] args) {
int age = 65;
if (age >= 18) {
System.out.println("De persoon is meerderjarig.");
} else if(age >= 50) {
System.out.println("De persoon is een vijftigplusser.");
} else {
System.out.println("De persoon is minderjarig.");
}
}
}
</syntaxhighlight>
Dit geeft echter als resultaat:
<pre>
De persoon is meerderjarig.
</pre>
We hadden nochtans de variable ''age'' 65 als waarde gegeven, dus verwachten we dat op het scherm "De persoon is een vijftigplusser." wordt getoond. Het resultaat is echter correct. net zoals ''else'' wordt de ''else if'' enkel uitgevoerd als de booleaanse uitdrukking van de eerste ''if'' false geeft als resultaat. Want 65 is effectief groter of gelijk aan 18. Je moet dus de "strengste" booleaanse uitdrukking altijd bovenaan plaatsen.
 
<syntaxhighlight lang="Java" highlight=5-8>
public class Main {
 
public static void main(String[] args) {
int age = 65;
if (age >= 50) {
System.out.println("De persoon is een vijftigplusser.");
} else if(age >= 18) {
System.out.println("De persoon is meerderjarig.");
} else {
System.out.println("De persoon is minderjarig.");
}
}
}
</syntaxhighlight>
Met dus als resultaat.
<pre>
De persoon is een vijftigplusser.
</pre>
Als je nu 25 zou geven als waarde aan ''age'', krijg je "De persoon is meerderjarig." te zien. Geef je een waarde onder 18, wordt de else uitgevoerd en krijg je ""De persoon is minderjarig." te zien.
 
Je kun zoveel ''else if'' gebruiken als je wilt, je zou dit ook nog kunnen uitbreiden met zestigplusser. Onthoud wel dat de strengste booleaanse uitdrukking bovenaan moet staan.
<syntaxhighlight lang="Java" highlight=5-7>
public class Main {
 
public static void main(String[] args) {
int age = 65;
if (age >= 60) {
System.out.println("De persoon is een zestigplusser.");
} else if (age >= 50) {
System.out.println("De persoon is een vijftigplusser.");
} else if(age >= 18) {
System.out.println("De persoon is meerderjarig.");
} else {
System.out.println("De persoon is minderjarig.");
}
}
}
</syntaxhighlight>
 
== Zonder codeblokken ==
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.