for ( ausdruck1; ausdruck2 ; ausdruck3 )Diese for-Anweisung entspricht folgender allg. while-Anweisung:anweisung ausdruck1 ist Schleifeninitialisierung
ausdruck2 ist Wiederholungstest (Vergleichsausdruck)
ausdruck3 ist Wiederinitialisierung
ausdruck1 ;
while ( ausdruck2) {}
- anweisung
- ausdruck3 ;
Bei der for-Anweisung kann jeder beliebige ausdrucki weggelassen werden. Es gilt:
for ( ; ; )ist eine unendliche Schleife.
Wenn in einer for-Schleife mehrere Laufvariablen benötigt werden, findet der Kommaoperator Anwendung:
BEISPIELE/b242.c: #include <stdio.h> #define M 2 #define N 3 #define R 4 main() /* Matrizenmultiplikation */ { int x[M][N] = { {1,2,3} , {4,5,6} }; int y[N][R] = { {10,20,30,40} , {50,60,70,80} , {90,100,110,120} }; int z[M][R]; int i,j,k; for(i=0;i<M;i++) { for(j=0;j<R;j++) { z[i][j]=0; for(k=0;k<N;k++) { z[i][j] += x[i][k] * y[k][j]; } printf("z[%d,%d]=%d ",i+1,j+1,z[i][j]); } printf("\n"); } }
VERBATIM/b242: #define N 100; ... int i, j; ... for(i=0,j=N ; i<N ; i++,j--) ...