Reference   Language | Libraries | Comparison | Changes

if (konditional) und ==, !=, <, > (Vergleichsoperatoren)

if wird in Konjunktionen mit Vergleichsoperatoren verwendet um zu prüfen ob eine Bedingung erfüllt wurde, wie z.B. dass eine Eingabe über einem Wert liegt. Das Format für eine if Überprüfung sieht wie folgt aus:

if (someVariable > 50)
{
  // do something here
}

Das Programm prüft ob someVariable über 50 liegt. Wenn das der Fall ist, führt das Programm eine Aktion aus. Anders ausgedrückt, wenn die Bedingung in den Klammern zutrifft, werden die Anweisungen in den geschweiften Klammern ausgeführt. Wenn nicht, wird dieser Code vom Programm übersprungen.

Die geschweiften Klammern nach dem if können auch ausgelassen werden. Lässt man sie weg, wird die nächste Zeile (definiert durch das Semikolon) als einzige Anweisung angesehen.


if (x > 120) digitalWrite(LEDpin, HIGH); 

if (x > 120)
digitalWrite(LEDpin, HIGH); 

if (x > 120){ digitalWrite(LEDpin, HIGH); } 

if (x > 120){ 
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH); 
}                                 // all are correct

Für die Anweisung, die innerhalb der Klammern ausgeführt werden soll, muss mindestens einen der folgenden Operatoren verwenden:

Vergleichsoperatoren:

 x == y (x ist gleich y)
 x != y (x ist ungleich y)
 x <  y (x ist kleiner als y)  
 x >  y (x ist größer als y) 
 x <= y (x ist kleiner oder gleich y) 
 x >= y (x ist größer oder gleich y)

Achtung:

Auf keinen Fall versehentlich das einfache Gleichheitszeichen verwenden (z.B. if (x = 10)). Das einfach Gleichheitszeichen ist ein Zuweisungsoperator und weist x den Wert 10 zu (setzt die Variable x auf den Wert 10). Stattdessen das doppelte Gleichheitszeichen verwenden (z.B. if (x == 10) ), welches der Vergleichsoperator ist und prüft ob x gleich 10 ist oder nicht. Die letzte Anweisung ist nur dann wahr, wenn x gleich 10 ist, die erste Anweisung wird aber immer wahr sein.

Das liegt daran dass C den if (x=10) Ausdruck folgendermaßen auswertet: x wird der Wert 10 zugewiesen (wie vorher erwähnt, ist das Einfache Gleichheitszeichen ein assignment operator), so dass x jetzt 10 enthält. Dann prüft die 'if' Bedingung 10, was immer TRUE zurückgibt, da jede Zahl außer 0 immer als TRUE ausgewertet wird, was ja nicht das erwartete Ziel ist wenn wir die 'if' Anweisung verwenden. Zusätzlich enthält die Variable x nun den Wert 10, was ebenfalls nicht erwünscht ist.

if kann in einer if...else Anweisung als Verzweigte Kontrollstruktur verwendet werden. Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Share