Reference   Language | Libraries | Comparison | Changes

for Befehle

Beschreibung

Die for Befehle werden genutzt um einen Block von Befehlen, der in geschweiften Klammern steht, zu wiederholen. Ein sich steigender Zähler wird normalerweise genutzt, um hochzuzählen und den wiederholenden Ablauf zu beenden. Der for Befehl ist nützlich für sich immer wiederholende Abläufe und wird oft genutzt, um in Arrays Daten/Pins zu speichern.

Um eine for Schleife nutzen zu können braucht man drei Teile:

for (initialization; condition; increment) {

//statement(s);

}

Die Initialisierung wird nur einmal, und zwar als Erstes durchgeführt. Bei jedem Durchgang der Schleife wird überprüft, ob der beschriebene Zustand zutrifft; wenn das der Fall ist, wird der Block mit Befehlen ausgeführt und der Zähler erhöht, dann wird wieder überprüft, ob dies nun zutrifft. Wenn der Zustand falsch ist, wird die Schleife beendet.

Beispiel

// Eine LED durch einen PWM Pin dimmen
int PWMpin = 10; // LED über Pin 10 in Reihe geschaltet mit einem 470 Ohm Widerstand 

void setup()
{
  // Kein Setup benötigt
}

void loop()
{
   for (int i=0; i <= 255; i++){
      analogWrite(PWMpin, i);
      delay(10);
   } 
}

proggramier Tipps

Die C for Schleifen sind viel flexibler als for Schleifen in einigen anderen Programmiersprachen, einschließlich BASIC. Einige oder alle der drei Kopfelemente können vielleicht weggelassen werden, obwohl die Semikolons benötigt werden. Auch die Aussagen der Initalisierung, Kondition, und Steigerung können gültige C Befehle mit unabhängigen Variablen sein, und alle C-Variablentypen einschließlich float darstellen. Diese ungewöhnlichen Arten von for Befehlen können die Lösung für einige seltene Programmierfehler sein.

Zum Beispiel wird das Verwenden einer Multiplikation in der Zeile des Zählers eine eine logarithmische Progression erzeugen:

for(int x = 2; x < 100; x = x * 1.5){
println(x);
}

Erzeugt: 2,3,4,6,9,13,19,28,42,63,94

Ein weiteres Beispiel, das hoch und runter Dimmen einer LED mit einer for Schleife:

void loop()
{
   int x = 1;
   for (int i = 0; i > -1; i = i + x){
      analogWrite(PWMpin, i);
      if (i == 255) x = -1;             // Dimmrichtungänderung am höchsten Punkt
      delay(10);
   } 
}

Verwandte Verweise

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Share