If-Anweisungen
In den bisherigen Programmbeispielen, wurden alle Anweisungen Zeile für Zeile ausgeführt. Ein Programm soll aber auch in der Lage sein, auf unterschiedliche Situationen zu reagieren.
Mit dem Schlüsselwort if kann man Verzweigungen einleiten.
if (Bedingung)
{
Anweisungen
}
Nach dem if folgt in runden Klammern eine Bedingung. Ist diese Bedingung wahr, wird die folgende Anweisung oder der folgende Block von Anweisungen ausgeführt. Bedingungen können unter anderem mit Hilfe von Vergleichsoperatoren gebildet werden.
Einen Block von Anweisungen werden mit Hilfe von geschweiften Klammern erzeugt.
Beispiel:
int preis = 22;
if (preis < 15)
{
Serial.println("Das kann ich mir leisten");
}
if (preis > 15)
{
Serial.println("So viel Geld habe ich nicht dabei");
}
In dem Beispiel wurde der Vergleichsoperator > (größer als) verwendet.
Für den Vergleich von Zahlen gibt es sechs Vergleichsoperatoren:
Operator |
Bedeutung |
Beispiel |
> |
größer als |
05 > 02 -> Wahr |
< |
kleiner als |
32 < 12 -> Falsch |
>= |
größer oder gleich |
23 >= 12 -> Wahr 23 >= 23 -> Wahr |
<= |
kleiner oder gleich |
542 <= 121 -> Falsch 41 <= 41 -> Wahr |
== |
gleich |
12 == 15 -> Falsch |
!= |
ungleich |
12 != 15 -> Wahr |
Zwei Möglichkeiten, mit if und else
Mit dem Schlüsselwort else kann man Verzweigungen erweitern. Falls die Bedingung nach dem if nicht wahr ist, so wird die Anweisung / Block von Anweisungen ausgeführt, der dem else folgt.
Beispiel:
int preis = 22;
if (preis < 15)
{
Serial.println("Das kann ich mir leisten");
}
else
{
Serial.println("So viel Geld habe ich nicht dabei");
}
Bedingungen kombinieren
Der Ablauf innerhalb einer Verzweigung kann auch von mehreren Bedingungen abhängig sein, die miteinander verknüpft werden. Diese Verknüpfungen können mit logischen Operatoren realisiert werden.
Logischer Operator |
Erklärung |
Beispiel |
&& |
Falls alle Bedingungen zutreffen sollen, dann werden sie mit Hilfe des Operators && verknüpft. |
if (2 < 4 && 7 < 12) |
|| |
Reicht dagegen eine Bedingung aus, dann wird der Operator || genutzt. |
if (4 == 2 || 8 != 3) |
! |
Das Zeichen ! steht für das logische Nicht. Mit diesem Operator wird der Wahrheitswert eine Bedingung umgedreht. |
if (!(5 >= 9)) |
Anmerkung: Die Vergleichsoperatoren haben Vorrang vor den logischen Operatoren && und ||. Das bedeutet, dass zunächst der Wahrheitswert der einzelnen Bedingungen ermittelt wird. Erst anschließend werden die Bedingungen verknüpft.
Der Operator ! für das logische Nicht hat allerdings Vorrang vor den Vergleichsoperatoren. Daher wird die Bedingung in Klammern gesetzt, bevor ihr Wahrheitswert umgekehrt wird.