Vlag
In computerwetenschappen is een vlag een waarde die als signaal voor een functie of proces fungeert. De waarde van de vlag wordt gebruikt om de volgende stap van een programma te bepalen. Vlaggen zijn vaak binaire vlaggen, die een booleaanse waarde bevatten (true of false). Niet alle vlaggen zijn echter binair, wat betekent dat ze een reeks waarden kunnen opslaan.
Je kunt een binaire vlag zien als een kleine rode vlag die plat ligt wanneer de waarde false is, maar omhoog springt wanneer de waarde true is. Een geheven vlag zegt tegen een programma: "Stop - doe iets anders." Een veelvoorkomend voorbeeld van een vlag bij het programmeren is een variabele in een while-lus. De onderstaande PHP-lus zal itereren totdat $flag op true wordt ingesteld.
$flag = false;
$i = 1;
while (!$flag) // stop when $flag is true
{
echo "$i, ";
$i++; // increment $i
if ($i > 100) $flag = true;
}
De bovenstaande code drukt getallen (1, 2, 3...) af tot en met 100. Daarna wordt de lus afgebroken omdat $flag op true wordt ingesteld. Het gebruik van een vlag is in deze context effectief, maar niet nodig. In plaats daarvan had de voorwaarde van de while-lus while ($i < 101) kunnen zijn in plaats van while (!$flag). Dit zou hetzelfde resultaat opleveren en de variabele $flag overbodig maken. Efficiënt geschreven programma's hebben zelden expliciete vlaggen nodig, omdat een bestaande variabele binnen een functie vaak als vlag kan worden gebruikt.
Niet-binaire vlaggen
Niet-binaire vlaggen gebruiken meerdere bits en kunnen meer opslaan dan "ja of nee" of "true of false". Voor dit type vlaggen zijn meer dan één bit nodig, maar niet noodzakelijk een volledige byte. Twee bits kunnen bijvoorbeeld vier mogelijke opties opleveren.
- 00 = optie A
- 01 = optie B
- 10 = optie C
- 11 = optie D
Je kunt een niet-binaire vlag zien als een vlag met meerdere kleuren. Een programma kan controleren of 1) de vlag met meerdere bits is ingesteld en 2) welke waarde deze bevat. Afhankelijk van de waarde (of "kleur") van de vlag gaat het programma verder in de bijbehorende richting.
Test je kennis