arduino
Schleifen
Suche…
Syntax
- for (Deklaration, Bedingung, Iteration) {}
- while (Bedingung) {}
- {} while (Bedingung)
Bemerkungen
General Remark
Wenn Sie eine Schleife erstellen möchten, um darauf zu warten, dass etwas passiert, sind Sie hier wahrscheinlich auf dem falschen Weg. Denken Sie vielmehr daran, dass der gesamte Code nach setup () von einer Methode namens loop () ausgeführt wird. Wenn Sie also auf etwas warten müssen, ist es am einfachsten, nichts (oder nur andere unabhängige Dinge) zu tun und beim nächsten Mal nach der Wartebedingung zu suchen.
do { } while(condition)
wertet die Bedingungsanweisung erst nach der ersten Iteration aus. Dies ist wichtig zu beachten, wenn die Bedingungsanweisung Nebenwirkungen hat.
Während
Eine while
Schleife wertet ihre Bedingung aus, und wenn sie true
, wird der Code darin ausgeführt und neu gestartet. Das heißt, solange die Bedingung true
, wird die while
Schleife immer wieder ausgeführt.
Diese Schleife wird 100 Mal ausgeführt, wobei jedes Mal 1 zur Variablen num
hinzugefügt wird:
int num = 0;
while (num < 100) {
// do something
num++;
}
Die obige Schleife entspricht einer for
Schleife:
for (int i = 0; i < 100; i++) {
// do something
}
Diese Schleife wird für immer ausgeführt:
while (true) {
// do something
}
Die obige Schleife entspricht einer for
Schleife:
for (;;) {
// do something
}
Zum
for
Schleifen sind vereinfachte Syntax für ein sehr verbreitetes Schleifenmuster, das mit einer while
Schleife in mehreren Zeilen ausgeführt werden könnte.
Das Folgende ist ein allgemeines Beispiel für eine for
Schleife, die 100 Mal ausgeführt und dann gestoppt wird.
for (int i = 0; i < 100; i++) {
// do something
}
Dies entspricht einer while
Schleife:
int num = 0;
while (num < 100) {
// do something
num++;
}
Sie können eine Endlosschleife erstellen, indem Sie die Bedingung auslassen.
for (;;) {
// do something
}
Dies entspricht einer while
Schleife:
while (true) {
// do something
}
Mach ... während
Eine do while
Schleife ist die gleiche wie eine while
Schleife, mit der Ausnahme, dass sie mindestens einmal ausgeführt wird.
Die folgende Schleife wird 100 Mal ausgeführt.
int i = 0;
do {
i++;
} while (i < 100);
Eine ähnliche Schleife, jedoch mit einer anderen Bedingung, wird 1 Mal ausgeführt.
int i = 0;
do {
i++;
} while (i < 0);
Wenn die obige Schleife nur eine while
Schleife wäre, würde sie 0-mal ausgeführt, da die Bedingung vor der ersten Iteration als false
ausgewertet würde. Da es sich um eine do while
-Schleife handelt, wird sie einmal ausgeführt und überprüft dann den Zustand, bevor sie erneut ausgeführt wird.
Ablaufsteuerung
Es gibt verschiedene Möglichkeiten, den Fluss einer Schleife zu unterbrechen oder zu ändern.
break;
beendet die aktuelle Schleife und führt keine weiteren Zeilen innerhalb dieser Schleife aus.
continue;
führt innerhalb der aktuellen Iteration der Schleife keinen weiteren Code aus, sondern verbleibt in der Schleife.
Die folgende Schleife wird aufgrund der break
Anweisung 101 mal (i = 0, 1, ..., 100) anstelle von 1000 ausgeführt:
for (int i = 0; i < 1000; i++) {
// execute this repeatedly with i = 0, 1, 2, ...
if (i >= 100) {
break;
}
}
Die folgende Schleife führt dazu, dass der Wert von j
wegen der continue
Anweisung 50 statt 100 ist:
int j=0;
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) { // if `i` is even
continue;
}
j++;
}
// j has the value 50 now.