next up previous contents
Nächste Seite: Funktionen Aufwärts: Schleifen Vorherige Seite: do - while-Schleife   Inhalt

for - Schleife

Die for-Schleife ist eine Besonderheit von C. In den auf das reservierte Wort for folgenden Klammern steht nicht nur, wie bei den anderen Schleifen ein Kontrollausdruck, sondern ein Initialisierungsbefehl, der nur einmal, vor Beginn der eigentlichen Schleife ausgeführt wird, der schon bekannte Kontrollausdruck, sowie ein Reinitialisierungsausdruck, der nach jedem Schleifendurchlauf durchgeführt wird. Diese drei Komponenten werden durch Semikolon voneinander getrennt und jeder von ihnen kann weggelassen werden. Wird Initialisierung oder Reinitialisierung weggelassen, so wid halt keine Initialisierung bzw. Reinitialisierung vorgenommen. Wird der Kontrollausdruck weggelassen, so gilt er als wahr (ungleich 0).

Bei der Initialisierung bzw. Reinitialisierung können auch mehrere, durch Komma voneinander getrennte Befehle stehen.

Eine Formulierung wie z.B.:


for(i=0;i<10;++i)
  printf("%d\n",i)

ist also äquivalent zu


i=0;                 /* Initialisierung */
while(i<10){
  printf("%d\n",i);
  ++i;              /* Reinitialisierung */
}

Das folgende vollständige Programmbeispiel berechnet Fibonaccizahlen bis zu einer angegebenen Obergrenze, gibt diese, sowie die vorige und das Verhältnis dieser beiden (goldener Schnitt) aus.


#include <stdio.h>

void main(void)
{
  int letzte, vorletzte, aktuelle, obergrenze;
  
  do{
    printf("Obergrenze (>1)\n");
    scanf("%d",&obergrenze);
  }while(obergrenze <= 1);
  for(vorletzte = letzte = aktuelle = 1; 
      aktuelle < obergrenze; 
      aktuelle = letzte + vorletzte) {
    printf("%d/%d = %1.10f\n",aktuelle,letzte,(double)letzte/aktuelle);
    vorletzte = letzte;
    letzte = aktuelle;
  }
}



Thomas Neuhaus
2001-01-14