ある条件が満たされている間の繰り返しには for() が便利である。
| 
  for (最初にすること; 継続の条件; 各繰り返しの最後にすること)
    文;
 | 
括弧 { } でくくることにより、複数の文をまとめた複文が使える。
| 
  for (最初にすること; 継続の条件; 各繰り返しの最後にすること) {
    文1;
    文2;
    ...
    文n;
  }
 | 
よくあるパターンとして、 「n 回の繰り返し」をするために次のように書くことがある。
| n回の繰り返し | 
| 
   for (i = 0; i < n; i++) {
      文;
      文;
   }
 | 
応用として、
「
 に対して
 に対して  ,
,  を計算して表示せよ」
という問題を解いてみよう。
 を計算して表示せよ」
という問題を解いてみよう。
 ,
, 
 とおくと、
数列
 とおくと、
数列  ,
,  は
 は
|     | |||
|    | 
| prog06.c | 
| /* prog06.c --- for 文による繰り返し (1) */
#include <stdio.h>
int main(void)
{
  int i, n;
  double x, y;
  printf("自然数を一つ入力してください: ");
  scanf("%d", &n);
  x = 1.0; y = 1.0;
  for (i = 1; i <= n; i++) {
    /* x をその 2 倍で、y をその 1/2 倍で置き換える */
    x = 2 * x; y = y / 2;
    /* 次の %g を %f や %e に変えて試してみよう */
    printf("2の%d乗=%g, 1/2の%d乗=%g\n", i, x, i, y);
  }
  return 0;
}
 | 
| prog06 の実行結果 | 
| % ./prog06 自然数を一つ入力してください: 20 2の1乗=2, 1/2の1乗=0.5 2の2乗=4, 1/2の2乗=0.25 2の3乗=8, 1/2の3乗=0.125 2の4乗=16, 1/2の4乗=0.0625 2の5乗=32, 1/2の5乗=0.03125 2の6乗=64, 1/2の6乗=0.015625 2の7乗=128, 1/2の7乗=0.0078125 2の8乗=256, 1/2の8乗=0.00390625 2の9乗=512, 1/2の9乗=0.00195312 2の10乗=1024, 1/2の10乗=0.000976562 2の11乗=2048, 1/2の11乗=0.000488281 2の12乗=4096, 1/2の12乗=0.000244141 2の13乗=8192, 1/2の13乗=0.00012207 2の14乗=16384, 1/2の14乗=6.10352e-05 2の15乗=32768, 1/2の15乗=3.05176e-05 2の16乗=65536, 1/2の16乗=1.52588e-05 2の17乗=131072, 1/2の17乗=7.62939e-06 2の18乗=262144, 1/2の18乗=3.8147e-06 2の19乗=524288, 1/2の19乗=1.90735e-06 2の20乗=1.04858e+06, 1/2の20乗=9.53674e-07 % | 
繰り返しの命令には、 他に while () ... や do ... while () などがある。