Template:Scripting if else construct

From TOI-Pedia

Het if-else-construct

Link oefening 3:

Het if-else-construct is een uitgebreide vorm van het if-construct. Het if-else-construct laat toe om een alternatieve instructie (of instructieblok) op te geven. Indien aan de voorwaarde niet voldaan is zal deze alternatieve instructie uitgevoerd worden.

Het if-else-construct heeft de volgende vorm:

if (voorwaarde)

instructie1;

else instructie2;


Beide instructies (of een van beide) kunnen ook vervangen worden door een instructieblok:

if (voorwaarde) {

instructies1;

} else {

instructies2;

}

Example:

float $radius = 1.2;

sphere -r $radius;

if ($radius < 2)

color -ud 1;

else color -ud 2;


$radius = 2.0;

sphere -r $radius;

if ($radius < 2)

color -ud 1;

else color -ud 2;

If-else genesteld

Meerdere if-else-constructen kunnen gecombineerd worden. Dit kan bijvoorbeeld handig zijn als er niet twee maar meerdere alternatieven bestaan, waarbij voor elk alternatief een andere voorwaarde geldt.

Een dergelijk genesteld if-else-construct kan de volgende vorm aannemen:

if (voorwaarde1)

instructie1;

else {

if (voorwaarde2)
instructie2;
else {
if (voorwaarde3)
instructie3;
else instructie4;
}

}

Meestal zijn de alternatieven echter gelijkwaardig en wordt gekozen voor de volgende schrijfwijze die beter leesbaar is:

if (voorwaarde1)

instructie1;

else if (voorwaarde2)

instructie2;

else if (voorwaarde3)

instructie3;

else instructie4;

Natuurlijk zijn beide schrijfwijzen volledig gelijkwaardig qua uitvoering. Het onderscheid betreft enkel de inspringing en het (hier optionele) gebruik van accolades. Beide schrijfwijzen gelden ook in het geval een of meerdere instructies vervangen wordt door een instructieblok.

Example:

$kleur = "groen";

if ($kleur == "blauw")

print("Hemel\n");

else if ($kleur == "rood")

print("Vuur\n");

else if ($kleur == "geel")

print("Zon\n");

else print("Ik geef op!\n");

Het gebruik van accolades is wel belangrijk in the next example:

if ($x > 0) {

if (!($x % 2))
print("Een positief even getal\n");

} else print("Een negatief getal\n");

Zonder de accolades zou het else-gedeelte aan het tweede if-construct toegewezen worden, in de plaats van aan het eerste.

Personal tools
Actions
Navigation
Tools