Arexx RP6 V2 Build your own robot kit RP6 V2 Manuel D’Utilisation
Codes de produits
RP6 V2
RP6 ROBOT SYSTEM - 4. Programmierung des RP6
4.4.6. Switch-Case
Oft muss man eine Variable auf viele verschiedene Zahlenwerte überprüfen und ab-
hängig davon Programmcode ausführen. Das kann man natürlich wie oben beschrie-
Oft muss man eine Variable auf viele verschiedene Zahlenwerte überprüfen und ab-
hängig davon Programmcode ausführen. Das kann man natürlich wie oben beschrie-
ben mit vielen if-then-else Bedingungen machen, aber es geht auch eleganter mit ei-
ner switch-Verzweigung.
Ein Beispiel:
ner switch-Verzweigung.
Ein Beispiel:
1
2
3
3
4
5
5
6
7
7
8
9
9
10
11
11
12
13
13
14
15
15
uint8_t
x =
3
;
switch
(x)
{
case
1
: writeString(
"x=1\n"
);
break
;
case
2
: writeString(
"x=2\n"
);
break
;
case
3
: writeString(
"x=3\n"
);
// Hier fehlt das "break", also fährt
case
4
: writeString(
"Hallo\n"
);
// das Programm direkt mit dem
case
5
: writeString(
"du\n"
);
// nächsten und dem nächsten Fall fort,
case
6
: writeString(
"da!\n"
);
break
;
// und stoppt erst hier!
case
44
: writeString(
"x=44\n"
);
break
;
// Hier gelangt das Programm hin, wenn keiner der obigen
// Fälle gepasst hat:
// Fälle gepasst hat:
default
: writeString(
"x ist was anderes!\n"
);
break
;
}
Das ist vom Resultat her ähnlich zu dem Beispiel auf der vorherigen Seite mit „if-else-
if-else-if-else...“, nur eine andere Schreibweise.
Die Ausgabe wäre in diesem Fall (mit x = 3):
Die Ausgabe wäre in diesem Fall (mit x = 3):
x=3
Hallo
Hallo
du
da!
da!
Wenn man x = 1 setzen würde, wäre die Ausgabe „x=1\n“ und mit x=5 wäre die
Ausgabe:
Ausgabe:
du
da!
da!
Hier sieht man, dass das „break“ die Switch-Verzweigung beendet. Lässt man es weg,
läuft das Programm einfach solange durch alle anderen Fälle durch bis entweder das
läuft das Programm einfach solange durch alle anderen Fälle durch bis entweder das
Ende der switch-Verzweigung erreicht ist oder ein anderes „break“ ausgeführt wird.
Dabei ist es egal ob die nachfolgenden Bedingungen erfüllt werden oder nicht!
Wenn x = 7 gesetzt wird, würde keiner der Fälle diesen Wert abdecken, das Pro-
gramm im default Teil landen und die Ausgabe wäre: „x ist was anderes!\n“.
Diese ganzen Textausgaben sind natürlich nur Beispiele – man könnte in realen Pro-
grammen für den Roboter damit z.B. verschiedene Bewegungsmuster auslösen. In ei-
Dabei ist es egal ob die nachfolgenden Bedingungen erfüllt werden oder nicht!
Wenn x = 7 gesetzt wird, würde keiner der Fälle diesen Wert abdecken, das Pro-
gramm im default Teil landen und die Ausgabe wäre: „x ist was anderes!\n“.
Diese ganzen Textausgaben sind natürlich nur Beispiele – man könnte in realen Pro-
grammen für den Roboter damit z.B. verschiedene Bewegungsmuster auslösen. In ei-
nigen Anwendungsbeispielen werden switch-case Konstrukte z.B. für endliche Auto-
maten verwendet um verschiedene Verhalten des Roboters zu implementieren.
maten verwendet um verschiedene Verhalten des Roboters zu implementieren.
- 71 -