Arduino – Zyklen

Mit Zyklen können bestimmte Teile eines Programms mehrmals ausgeführt werden. Durch die Verwendung von Schleifen kann der Code in bestimmten Situationen prägnanter gestaltet werden. 

while-Zyklus

Die while-Zyklus wird kontinuierlich ausgeführt, solange die Bedingung in Klammern erfüllt ist. Etwas muss den Wert der Variablen in Klammern ändern, sonst wird die while-Zyklus niemals beendet. Dies kann im Codeblock wie einer inkrementellen Variablen oder in einem externen Zustand wie einer Zustandsänderung eines Eingangspins erfolgen.

while(Bedingung )
{
  // statement
}

Im folgenden Beispiel wird die while-Zyklus ausgeführt, solange der Wert der Variablen kleiner als 10 ist.

int myVariable = 0;

while (myVariable < 10)
{
  myVariable++;
}

Während Endloszyklus:

while(true)
{
  // läuft für immer...
}

do…while Zyklus

Die do… while-Zyklus funktioniert genauso wie die while-Zyklus, außer dass die Bedingung am Ende der Zyklus getestet wird, sodass die do… while-Zyklus immer mindestens einmal ausgeführt wird. Die do… while-Zyklus wird auch als Backtest-Zyklus bezeichnet. Die do… while-Zyklus im folgenden Beispiel wird zehnmal ausgeführt, da der Codeblock bereits ausgeführt wird, wenn die Bedingung falsch wird.

int myVariable = 0;

do 
{
  myVariable++;
} while(myVariable < 10);

for Zyklen

Die for-Zyklus hat drei Ausdrücke. Diese bestimmen, wie es funktioniert. Die drei Ausdrücke in Klammern für das Argument for Zyklen sind durch Semikolons getrennt. Im ersten Ausdruck initialisieren wir die Zyklusvariable. Der zweite Ausdruck ist eine Schleifenbedingung, solange er für den Schleifenlauf gilt. Im dritten Ausdruck ändern wir den Wert der Zyklusvariablen.

for(int index = 0; index <= 10; index++) 
{    
  // weitere Code
}

Die Endlosschleife:

for( ; ; )
{
  // läuft für immer...
}

Die for-Zyklus wird häufig mit Arrays verwendet, z. B. um Daten zu extrahieren oder Arrays zu füllen.

int myIntArray[] = {1,2,3,4};

for ( int i = 0; i < 4; ++i)
{
  Serial.print(myIntArray[i]);
  Serial.print (", ") ;
}
int myIntArray[4];

for ( int i = 0; i < 4; ++i)
{
  myIntArray[i] = i + 1;
}

for-Zyklus können verschachtelt werden.

char myCharArray[4][5] = {"row1","row2","row3","row4" };

for ( int i = 0; i < 4; ++i )
{
  for (int j = 0; j < 4; j++)
  {
    Serial.print(myCharArray[i][j]);
  }
}

break

Die break-Anweisung wird verwendet, um Zyklen for, while oder do … while zu beenden oder eine switch case-Anweisung zu beenden.

Wenn im folgenden Beispiel der Wert der Variablen „i“ 5 wird, endet die Zyklus. Das zuletzt gedruckte Zeichen ist 4.

for (int i = 0; i < 10; i++) 
{
  if (i == 5) 
  {
    break;
  }
  Serial.println(i);
}

continue

Die continue-Anweisung bricht eine Iteration in der Zyklus ab, wenn eine bestimmte Bedingung auftritt, und fährt mit der nächsten Iteration der Zyklus fort.

In diesem Beispiel wird der Wert 5 weggelassen:

for(int i = 0; i < 10; i++) 
{
  if (i == 5)
  {
    continue;
  }
  Serial.println(i);
}

Im nächsten Abschnitt werden wir die Funktionen überprüfen.

Der Arduino Mega 2560 Mikrocontroller-Board

Arduino Mega 2560
Werbung – Arduino Mega 2560