Arduino - For - SchleifeMit einer Schleife können Anweisungen oder ganze Programmteile bis zum Erreichen
einer bestimmten Bedingung wiederholt werden. Die zu wiederholende Sequenz steht in geschweiften
Klammern {}. Die Initialisierung, Abbruch- sowie Fortsetzungsbedingung der
Schleife werden davor innerhalb von ()-Klammern untergebracht.
Die Struktur einer For-Schleife sieht wie folgt aus:
// ----------------------------------------------------------
// Strunktur einer For-Schleife
for (int i=0; i<25; i++) {
// Anweisung1
// Anweisung2
// Anweisung...
}
// ----------------------------------------------------------
Zunächst benötigt die Schlaufe einen Startwert, mit dem die Wiederholungssequenz
beginnen wird. Die hierfür eingesetzte Variable kann entweder nur für den Ablauf der Schleife
oder auch in dem nachfolgenden Programmcode genutzt werden. Mit der darauffolgenden Bedingung
wird festgelegt, wann die Schleife beendet wird. Sie wird solange wiederholt, solange die
Bedingung wahr ist. Mit dem Befehl "break" kann die Schleife vorzeitig verlassen werden,
wodurch die Hauptbedingung der Schleife umgangen werden kann. Sobald die Bedingung erfüllt ist,
setzt Arduino die Bearbeitung des Codes, der hinter der Schleife steht, fort.
Schließlich folgt die Angabe des Schrittes, mit dem der Schleifenzähler verändert
wird.
Beispiel:
// ----------------------------------------------------------
// For-Schleife
int i;
void setup() {
Serial.begin(9600);
}
void loop() {
for (i=100; i<=120; i=i+2) {
Serial.print ("-");
Serial.print (i);
}
Serial.println ();
Serial.println ("Die for-Schleife wurde soeben beendet.");
delay(1000);
}
// Ausgabe: -100-102-104-106-108-110-112-114-116-118-120
// Die for-Schleife wurde soeben beendet.
// ----------------------------------------------------------
Schleifen können verschachtelt werden:
// ----------------------------------------------------------
// For-Schleifen verschachtelt
int i;
int j;
void setup() {
Serial.begin(9600);
}
void loop() {
for (i=10; i>5; i--) {
for (j=1; j<3; j++) {
Serial.print ("-");
Serial.print (i*j);
}
}
Serial.println ();
Serial.println ("Ablauf beendet.");
delay(1000);
// ----------------------------------------------------------
Als Ausgabe erhalten wir hier:
-10-20-9-18-8-16-7-14-6-12
Ablauf beendet.
Zuerst wird die erste i-Schleife initialisiert und die Variable i erhält den Wert 10. Jetzt
startet die zweite Schleife j. Die Variable j beginnt mit dem Wert 1. Als Ergebnis der ersten
Multiplikation erhalten wir den Wert (i*j) 10*1=10. Die erste Schleife i muss warten,
bis die j-Schleife komplett abgelaufen ist. Im nächsten Schritt bekommen wir also einen neuen Wert
für j (j=2) und einen neuen Wert der Multiplikation 10*2=20. Erst jetzt, nachdem die j-Schleife
abgelaufen ist, kann die i-Schleife ihre Arbeit fortsetzen. Der nächste Wert für i ist jetzt 9.
Alles Weitere wiederholt sich dann entsprechend, bis i-Schleife komplett abgearbeitet wurde.
Damit haben wir hier 5 (5 Durchläufe der i-Schleife) * 2 (2 Durchläufe der j-Schleife) = 10
Abläufe der inneren Schleife insgesamt.
Google-Suche auf MEINE-SCHALTUNG.de :
|
|