L'implementazione del ciclo for in C è, probabilmente, di gran lunga la più versatile rispetto a cicli analoghi in altri linguaggi di programmazione; fatti salvi, naturalmente, tutti quei linguaggi che ereditano, pressochè senza modifiche, le istruzioni di controllo proprie del C. Sto pensando, ad esempio, a C++ , Java, Perl, etc... Tale costrutto è molto simile a quello del FORTRAN, quindi assai agevole per fare delle manipolazioni numeriche, tuttavia con la possibilità di essere gestito in maniera assai più libera dal programmatore, che può decidere di farne un uso del tutto originale.
Lo schema del ciclo è il seguente:
for(<inizializzazione>;<condizione>;<incremento>) {
/* Corpo del ciclo */
}
Dove
<inizializzazione>, <condizione>, <incremento>)
possono essere utilizzate come segue:
1 #include<stdio.h>
2
3 int main()
4 {
5 int miavar;
6 for(miavar = 0; miavar <= 15; miavar++ ){
7 printf("\t %d \n", miavar);
8 }
9 }
Oppure possono essere del tutto omesse, in quanto del tutto opzionali. L'esempio successivo chiarisce uno tra i possibili usi "dandy" del ciclo for() che, si fa notare, sono frequenti, per le possibilità offerte, almeno tanto quanto quelli "classici" in stile Pascal.
1 #include<stdio.h>
2
3 int main()
4 {
5 int scelta;
6 for(;;) {
7 printf("\t 0 \t per uscire \n");
8 scanf("%d" ,&scelta);
9 if (scelta == 0) break;
10 else {
11 printf("\t Non hai scelto di uscire\n");
12 }
13
14 }
15
16 }
Lo stesso blocco di istruzioni é opzionale; così é possibile vedere esempi di codice come il seguente, che implementa un "ciclo di ritardo":
1 #include<stdio.h>
2
3 int main()
4 {
5 int tempo;
6 for(tempo = 0; tempo < 100000000; tempo++);
7 }/* main */