Logische operatoren

Omschrijving
In Arduino C++ zijn operators speciale tekens die je helpen bij taken zoals rekenen en vergelijken. Je hebt rekenkundige operators zoals ‘+’, ‘-‘, ‘*’, en ‘/’ voor wiskundige berekeningen. Vergelijkingsoperators zoals ‘==’, ‘!=’, ‘>’, en ‘<‘ checken of dingen gelijk zijn of hoe ze zich tot elkaar verhouden. Logische operators zoals ‘!’, ‘&&’, en ‘||’ voeren logische bewerkingen uit. Met deze operators wordt het makkelijker om berekeningen en vergelijkingen in je code te doen, zodat je programma precies doet wat je wilt. Hier bekijken we de logische operators.

Omschrijving
De ! operator, ook bekend als de logische NOT-operator, verandert de waarheidswaarde van iets. In programmeertalen betekent dit dat als je de ! operator gebruikt, het omgekeerde resultaat krijgt: als iets waar (true) is, wordt het onwaar (false); en als iets onwaar (false) is, wordt het waar (true). Dit wordt vaak gebruikt in programma’s om te controleren of iets wel of niet gebeurt. Bijvoorbeeld, als a een booleaanse variabele is (een variabele die alleen true of false kan zijn), dan is ‘!a’ true als ‘a’ false is, en false als ‘a’ true is.

Voorbeeld

bool var1 = true;
int x1 = 6;
int x2 = 10;

Serial.print("var1 = ");
Serial.println(var1);
Serial.print("!var1 = ");
Serial.println(!var1);

if ( var1 ){
    Serial.println("Regel 1");
}

if ( !var1 ){
     Serial.println("Regel 2");
}

if ( x1 == x2 ){
     Serial.println("Regel 3");
}

// '==' vergelijkt het linker deel met het rechter deel, als ze gelijk zijn geeft dit waar
if ( !(x1 == x2) ){
     Serial.println("Regel 4");
}

Uitvoer

-- Begin --

var1 = 1
!var1 = 0
Regel 1
Regel 4
var1 = 1
!var1 = 0
Regel 1
Regel 4

Omschrijving
De && operator staat voor “logische EN” en wordt gebruikt om te controleren of twee condities tegelijkertijd waar zijn. In een uitdrukking als conditie1 && conditie2, wordt het geheel alleen true (waar) als zowel ‘conditie1’ als ‘conditie2’ waar zijn. Als een van beide of beide condities onwaar (‘false’) zijn, dan resulteert de uitdrukking in ‘false’. Deze operator is essentieel in programmering en logica voor het combineren van meerdere voorwaardelijke checks in één statement, waardoor striktere controle mogelijk is over de flow van de code.

var1var2Resultaat
true&&true=true
true&&false=false
false&&true=false
false&&false=false

Voorbeeld

bool var1 = true;
bool var2 = true;
bool var3 = false;
bool var4 = false;
int x1 = 6;
int x2 = 10;
int x3 = 6;

if ( var1 && var2 ){
    Serial.println("Regel 1");
}

if ( var1 && var3 ){
     Serial.println("Regel 2");
}

if ( var3 && var4 ){
     Serial.println("Regel 3");
}

// '==' vergelijkt het linker deel met het rechter deel, als ze gelijk zijn geeft dit waar
if ( (x1 == x2) && var1 ){
     Serial.println("Regel 4");
}

// '==' vergelijkt het linker deel met het rechter deel, als ze gelijk zijn geeft dit waar
  if ( (x1 == x3) && var2 ){
     Serial.println("Regel 5");
}

Uitvoer

-- Begin --

Regel 1
Regel 5

Omschrijving
De || operator, bekend als “logische OF”, wordt gebruikt om te checken of ten minste één van twee condities waar is. In een uitdrukking als ‘conditie1 || conditie2′, resulteert het geheel in ‘true’ (waar) als óf ‘conditie1’, óf ‘conditie2’, óf beide waar zijn. Het wordt alleen ‘false’ (onwaar) als beide condities onwaar zijn. Deze operator is handig voor situaties waarin je wilt dat een stuk code wordt uitgevoerd als aan ten minste één van meerdere criteria is voldaan, waardoor je meer flexibiliteit hebt in je controlestructuren.

var1var2Resultaat
true||true=true
true||false=true
false||true=true
false||false=false

Voorbeeld

bool var1 = true;
bool var2 = true;
bool var3 = false;
bool var4 = false;
int x1 = 6;
int x2 = 10;
int x3 = 6;

if ( var1 || var2 ){
    Serial.println("Regel 1");
}

if ( var1 || var3 ){
     Serial.println("Regel 2");
}

if ( var3 || var4 ){
     Serial.println("Regel 3");
}

// '==' vergelijkt het linker deel met het rechter deel, als ze gelijk zijn geeft dit waar
if ( (x1 == x2) || var1 ){
     Serial.println("Regel 4");
}

// '==' vergelijkt het linker deel met het rechter deel, als ze gelijk zijn geeft dit waar
  if ( (x1 == x3) || var2 ){
     Serial.println("Regel 5");
}

Uitvoer

-- Begin --

Regel 1
Regel 2
Regel 4
Regel 5