Verzweigungen dienen dazu, im Programm auf Ereignisse reagieren zu können.
if
if (Bedingung) Anweisungsblock 1 else Anweisungsblock 2
Wenn die Bedingung erfüllt ist, wird der Anweisungsblock 1 aufgeführt.
Das Schlüsselwort else erweitert die Einsatzmöglichkeiten der if-Verzweigung. Der Anweisungsblock 2 wird nur ausgeführt, wenn die Bedingung nicht erfüllt ist.
Beispiel
if (i>5)
Serial.println("Bedingung erfüllt");
else
Serial.println("Bedingung nicht erfüllt");
Im obigen Beispiel kam schon der Vergleichsoperator > zum Einsatz. In C gibt es insgesamt sechs Vergleichsoperatoren. Sie liefern jeweils den Wert true, wenn die beiden Operanden (die links und rechts des Operators stehen) dem Vergleichskriterium genügen, ansonsten den Wert false.
| == | identisch (= ist eine Wertzuweisung, also nicht mit == verwechseln) |
| <= | ist kleiner (oder) gleich |
| >= | ist größer (oder) gleich |
| < | ist kleiner |
| > | ist größer |
| != | ist ungleich |
Logische Operatoren
Mit logischen Operatoren können mehrere Bedingungen zu einer Bedingung verknüpft werden. C bietet folgende Möglichkeiten:
| ! | NICHT | Resultat wahr, wenn die Bedingung nicht erfüllt ist |
| && | UND | Resultat wahr, wenn beide Bedingungen erfüllt sind |
| || | ODER | Resultat wahr, wenn mindestens eine Bedingung erfüllt ist (inclusive-or) |
switch-Anweisung
Die switch-Anweisung ist eine elegante Möglichkeit, mehrere verschiedene Fälle zu unterscheiden.
switch (Ausdruck)
{
case Zahl1: Anweisungen1;
case Zahl2: Anweisungen2;
//...
default: Anweisungen_sonst;
}Innerhalb des switch-Blocks kann der Ausdruck mit verschiedene Zahlen verglichen werden. Dabei sind nur ganzzahlige Datentypen, wie int, erlaubt.
Der default-Teil darf auch fehlen.
Beispiel
switch (i)
{
case 1:
// Anweisungsblock für i==1
break; // Sprung an das Ende des switch-Blocks
case 5: // Vor
// Anweisungsblock für i==5
break; // Sprung an das Ende des switch-Blocks
default:
// Anweisungsblock für alle anderen Fälle
}