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 }