Programmieren
 
 
 
 
 
C-Grundkurs
 
 
 
 
 
.. FOR  -Schleife
 
 

 
 
 
 
 
Die for () -Schleife kann nur innerhalb von Funktionen benutzt werden, auch wenn ihre Syntax mit den geschweiften Klammern, der einer Funktion ähnlich ist. Ihre Funktion ist folgende..

Beim ersten Eintritt in die for() -Schleife wird eine Laufvariable auf einen Start- oder Anfangswert gesetzt. Dann wird geprüft, ob der Wert der Laufvariablen die Laufbedingung erfüllt ..
 
 
 
 
 
Die Laufbedingungen setzen sich aus Relationen (Vergleichen) und logischen Verknüpfungen (UND &&, ODER ||, NICHT !) zusammen.
Siehe auch das Kapitel über logische Bedingungen
 
 
Syntax:
 
 
// linearer Programmteil vor der Schleife

for (startwerte ; laufbedingung ; startwertänderung)
{
Anweisungsblock;
}

// linearer Programmteil Fortsetzung
 
 

 
 
  • .. wenn nein, wird der Anweisungsblock {} zwischen den geschweiften Klammern übersprungen und kein Befehl darin ausgeführt.
  • .. wenn ja,     werden die Befehle des Anweisungsblocks durchlaufen und dann zum Kopf der Schleife zurückgesprungen.
  • .. hier wird die Formel zur Startwertänderung ausgeführt und erneut geprüft, ob die Laufbedingung noch immer erfüllt ist ...
    • .. wenn nein, bricht die for-Schleife ab und verzweigt zu der ersten Anweisung nach der schließenden Blockklammer ..
    • .. wenn ja,     wird der Anweisungsblock solange durchlaufen, bis die Laufwertbedingung nicht mehr erfüllt ist.
 
 
 
 
 
Weitere Wege eine for–Schleife zu unterbrechen sind z.B. if () -Abfragen, die das Schlüsselwort 'break' enthalten, oder den Befehl 'return'. Bei 'break' wird die Programmausführung hinter dem Anweisungsblock fortgesetzt, bei 'return' wird die Funktion beendet, welche die for–Schleife enthält. Ein letzter Befehl im Zusammenhang mit der for–Schleife ist der Befehl 'continue'. Soll vor dem Ende des Anweisungsblocks erneut zum Schleifenkopf gesprungen werden, um die Laufbedingung zu überprüfen, wird dies durch den Befehl 'continue' eingeleitet. continue ist normaler Weise Teil einer if () -Abfrage.
 
 
 
 
 

 
 
 
 
 
Varianten:
 
 
// linearer Programmteil
for (startwerte; laufbedingung; startwertänderung)
nur eine Anweisung und es können die {} Klammern entfallen;
// linearer Programmteil Fortsetzung
 
 
Folgt nur eine Anweisung, können die geschweiften Klammern entfallen
 
 
 
// linearer Programmteil
for (startwerte; laufbedingung; startwertänderung) ;
// linearer Programmteil Fortsetzung
 
 
Solche Schleifen ohne eine Anweisung werden benutzt um Verzögerungen im Programmablauf zu erzeugen. Allerdings sind diese von der Arbeitsfrequenz des verwendeten Computers abhängig. Besser wäre hier die Abfrage eines Timers.
 
 
 
// linearer Programmteil
for ( ; laufbedingung ; ) ;
// linearer Programmteil Fortsetzung
 
 
Zwingend vorgeschrieben ist in der for-Schleife nur die Laufbedingung. Der Startwert und die Startwertänderung sind optional. Trotzdem müssen die Trennzeichen ; gesetzt werden. Der Startwert kann vor dem Eintritt in die Schleife gesetzt werden und seine Änderung wird dann üblicherweise innerhalb des Anweisungsblocks durchgeführt.
 
 
 

 

 

Beispiel:

 

 
#include <stdio.h>        // für printf()

void main(void)
{
  int n;                  // Variable für Startwert
  char c ='-';            // Zeichen zur Ausgabe

  for (n=20; n>0; n=n-1)
  {
    printf("%c",c);       // Linie aus 20 Zeichen '-'
  }
}
 
 
 
 
 
Bemerkung zum Beispiel
n = 20   - Der Startwert in der Variablen n wird auf 20 gesetzt.
n > 0     - Die Laufbedingung lautet, solange n größer als 0 ist
n = n-1  - Die Startwertänderung vermindert n bei jedem Umlauf um 1. Hier
                hätte auch n-- stehen können.

Das Resultat dieses Programms ist eine horizontale Linie aus 20 Zeichen '-'
--------------------
 
 

 
 
Zusammenfassende Bemerkungen:
 
 
  • die Deklaration der Variablen für den Startwert kann im Kopf der for-Schleife geschehen. z.B. (for (int n=0; .. ; ..) in diesem Fall gilt n nur für den Anweisungsblock der for-Schleife. In der umgebenden Funktion ist n nicht erreichbar (sichtbar). I
  • der Startwert wird nur beim ersten Einlauf in die Schleife gesetzt.
  • die Startwertänderung findet nach dem Durchlauf der Schleife statt.
  • die Laufbedingung wird beim Einstieg in die for-Schleife und bei jedem erneuten Erreichen des Anfangs (nach der Änderung des Startwertes der Schleife .. wenn vorhanden), geprüft.
  • folgt der for-Schleife nur eine Anweisung, können die Klammern um den Befehlsblock zwischen '{' und '}' entfallen
  • besitzt eine for-Schleife keine Anweisung, so endet sie mit einem ;
  • Startwert und Startwertänderung können entfallen, wenn die Werte bereits an anderer Stelle gesetzt bzw. verändert werden. Es müssen aber die trennenden Semikoli gesetzt werden.
    zudem ..
  • es können mehrere Startwerte definiert werden. Sie müssen durch ein Komma getrennt werden.
  • Es können mehrere Startwertänderungen angegeben werden. Sie müssen durch ein Komma getrennt sein.
  • Die Laufbedingung kann diese Werte durch einen logischen Ausdruck miteinander in Zusammenhang bringen.
 
 
 
 
www..de