Freitag, 17. Juli 2015

Schleifen in C++

In diesem Tutorial geht es darum, welche Arten von Schleifen es in der Programmiersprache C++(Arduino IDE/Atmel Studio) gibt. Eine Schleife enthält einen Code, der solange ausgeführt wird, bis eine bestimmte Bedingung nicht mehr wahr ist.

Die while() Schleife

Die while Schleife ist die bekannteste Schleifenform. Dabei besteht die while() Schleife aus einer Bedingung, die am Anfang steht. Sollte diese Bedingung zutreffen wird der Code einmal ausgeführt. Danach wird wieder geprüft, ob die Bedingung zutrifft und der Code eventuell erneut ausgeführt. Das wiederholt sich solange, bis die Bedingung falsch ist. Im Sketch steht die Bedingung in den normalen Klammern und der auszuführende Code in den geschweiften Klammern.

Die do...while() Schleife

Die do...while() Schleife ist eine while Schleife, die mindestens einmal ausgeführt wird. Es wird also der Code einmal ausgeführt und dann geprüft, ob die Bedingung überhaupt zutrifft. Falls dem so ist wird der Code nochmal ausgeführt. Dann wird wieder überprüft und so weiter. Der Unterschied zwischen der while und der do...while Schleife ist, dass der Code in der do...while Schleife mindestens einmal ausgeführt wird, bei der while Schleife muss dazu die Bedingung zutreffen.
Wichtig ist noch, dass nach der Bedingungsklammer ein Semikolon(;) benötigt wird.

Die for() Schleife

Eine for Schleife ist eine abgewandelte while Schleife. Dabei wird auch ein gewisser Code öfter ausgeführt. Der Unterschied ist, dass die Zählervariable, die in der Bedingung vorkommt, direkt in der for Schleife definiert wird, und der Hochzählrhythmus auch direkt in der Schleife definiert wird. Das klingt jetzt seltsam, wird aber mit einem Beispiel klar:
In den normalen Klammern wird erste eine Variable mit einem Startwert definiert, nach einem Semikolon kommt dann die Bedingung. Nach einem weiteren Semikolon steht dann, was mit der Variable, nach jedem Durchgang, getan werden soll. In diesem Fall die Variable um 1 vergrößern, dafür das ++. Lustigerweise kommt daher auch der Name von C++.  In den geschweiften Klammern steht dann wieder der auszuführende Code. Nach einem Durchgang wird dann der dritte Abschnitt der normalen Klammern ausgeführt(das Vergrößern um 1), und dann geprüft, ob die Bedingung wahr ist. 

Die verschiedenen Operatoren 

Ein Operator ist ein "Ding", das entweder wahr oder falsch, also einen Wahrheitswert, zurückgibt. Ein Beispiel ist das ">" Zeichen. Operatoren verwendet man, um eine Bedingung für eine Schleife oder eine Abfrage(if) zu erzeugen. Es gibt verschiedene Operatoren. Hier die wichtigsten:
Es ist wichtig, dass du, falls zwei Dinge gleich sein sollen ein doppeltes = machst, also ==, denn ein einfaches = ordnet den Wert der ersten Variable einfach der zweiten Variable zu. Dadurch wird dann die Schleife unendlich oft ausgeführt.

Bedingungen verknüpfen

Natürlich ist es auch möglich, dass eine Schleife oder eine Abfrage mehrere Bedingungen hat. Dazu gibt es in der Arduino IDE zwei Möglichkeiten:

Das doppelte Und-Zeichen verknüpft einfach die beiden Bedingungen. Wenn also beide Bedingungen zutreffen wird der Code ausgeführt. Im Programm muss man dann die beiden Bedingungen in die normalen Klammern schreiben: while((Bedingung1) && (Bedingung2)) { Code }.  Nach dem selben Prinzip funktioniert ||. Das steht für oder.

Erwähnenswert ist noch, dass man eine Bedingung über ! "umdrehen" kann. Falsch ergibt demnach wahr und wahr falsch. Beispiel: while(!(Bedingung)) { Code }.

Keine Kommentare:

Kommentar veröffentlichen