Wat zijn logische operatoren?

Logische operatoren, zoals && (en), || (of) en ! (niet), worden gebruikt om meerdere condities te combineren. Met deze operatoren kan het programma meerdere criteria tegelijk evalueren.

  • && (en): De en-operator zorgt ervoor dat beide condities waar moeten zijn voordat de code wordt uitgevoerd.
  • || (of): De of-operator voert de code uit als ten minste één van de condities waar is.
  • ! (niet): De negatie-operator draait de waarde van een boolean om. Als de waarde true was, wordt deze nu false, en omgekeerd.

Haakjes () worden gebruikt om voorwaarden in te sluiten en de volgorde van evaluatie aan te geven.

De volgorde waarin condities worden geëvalueerd is als volgt:

  1. Haakjes (): Voorwaarden binnen haakjes worden altijd eerst geëvalueerd, wat de hoogste prioriteit heeft.
  2. Negatie ! (niet): De negatieoperator heeft de op één na hoogste prioriteit en wordt toegepast op de voorwaarde ernaast.
  3. Logische AND && (en): Na de haakjes en negaties wordt de AND-operator geëvalueerd. Beide condities moeten waar zijn om de code uit te voeren.
  4. Logische OR || (of): Deze operator heeft de laagste prioriteit. De code wordt uitgevoerd als ten minste één van de condities waar is.

INFO

De ! kan ook vóór haakjes () worden geplaatst. In dit geval wordt het resultaat van de voorwaarde binnen de haakjes omgekeerd.

Casus

Stel je hebt een evenement met toegangspoortjes georganiseerd. Als de deuren open zijn en je hebt een geldig ticket, mag je naar binnen; zo niet, dan blijf je buiten.

Hoe werken de haakjes en logische operatoren?

In een if-statement helpen haakjes () om complexe logica op te splitsen en te specificeren welke delen eerst worden geëvalueerd. Dit helpt om te bepalen of bepaalde delen van een voorwaarde aan elkaar gekoppeld zijn.

Codevoorbeeld

if ((leeftijd > 18 && leeftijd < 65) || specialeStatus){
    // Code voor toegang indien tussen 18 en 65 jaar, of een speciale status
} else {
    // Alternatieve code als de condities niet waar zijn
}

Hoe gebruik je logische operatoren?

Logische operatoren maken het mogelijk om specifieke scenario’s te controleren waarin meerdere voorwaarden tegelijk relevant zijn. Dit is handig voor programma’s die verschillende niveaus van toegang of rechten verlenen.

Casus

  • Gebruikers van 18 tot 65 jaar, of met een speciale status zoals “student,” krijgen toegang.
  • Gebruikers 65 en ouder ontvangen de melding “Seniorenkorting toegepast.”
  • Gebruikers onder 18 zonder speciale status krijgen geen toegang.

Mogelijke uitwerking van de casus

int age = 20;
bool isStudent = true;
 
if (age >= 65) {
    Console.WriteLine("Seniorenkorting toegepast.");
}
else if ((age >= 18 && age < 65) || isStudent) {
    Console.WriteLine("Toegang verleend tot de content.");
}
else {
    Console.WriteLine("Toegang geweigerd. Leeftijdsrestrictie of geen speciale status.");
}

Flowchart van de bovenstaande If-Else-If structuur

flowchart TD
    A[Start] --> B[Leeftijd controleren en speciale status checken]
    B --> C{Is leeftijd >= 65?}
    C -- Ja --> D[Seniorenkorting toegepast]
    C -- Nee --> E{Is leeftijd tussen \n 18 en 65?}
    E -- Ja --> G{Is de gebruiker \n een student?}
    G -- Ja --> H[Toegang verleend \n tot de content]
    G -- Nee --> H
    E -- Nee --> F[Toegang geweigerd. Leeftijdsrestrictie \n of gebruiker is geen student.]
    D --> I[Programma verder uitvoeren]
    H --> I
    F --> I
    I --> J[Stop]

In deze flowchart kan je zien dat zodra de leeftijd tussen de 18 en 65 ligt het niet meer uitmaakt of de gebruiker een student is of niet. Dit komt door de || (of). Was de || vervangen door && had de flowchart als volgt eruit gezien:

flowchart TD
    A[Start] --> B[Leeftijd en studentstatus controleren]
    B --> C{Is de leeftijd gelijk \n aan of groter dan 65?}
    C -- Ja --> D[Seniorenkorting toegepast]
    C -- Nee --> E{Is leeftijd tussen \n 18 en 65?}
    E -- Ja --> G{Is de gebruiker \n een student?}
    G -- Ja --> H[Toegang verleend tot de content]
    G -- Nee --> F[Toegang geweigerd. Leeftijdsrestrictie \n of gebruiker is geen student]
    E -- Nee --> F
    D --> I[Programma verder uitvoeren]
    H --> I
    F --> I
    I --> J[Stop]

In deze flowchart kan je dus zien dat het tweede deel, isStudent nu wel van belang is.