for文 - 繰り返しの構文
for文を使用すると繰り返しが書けます。
for (ループ変数の初期化;繰り返し条件;ループ変数の更新) { }
for文で合計を求めるサンプルです。
#include <stdint.h> #include <stdio.h> int main(void) { // for文で合計を求める int32_t total = 0; int32_t i; for (i = 0; i < 10; i++) { total += i; } printf("%d\n", total); }
0~9までの合計が出力されます。
45
for文はwhile文のシンタックスシュガーです。以下のwhile文とfor文は等価です。
#include <stdint.h> #include <stdio.h> int main(void) { // for文で合計を求める int32_t total = 0; int32_t i = 0; while (i < 10) { total += i; i++; } printf("%d\n", total); }
C99で追加されたforのループ変数初期化部における変数宣言
C99で追加されたforのループ変数初期化部における変数宣言の機能が便利です。
for (ループ変数の宣言と初期化;繰り返し条件;ループ変数の更新) { }
for文で合計を求めるサンプルです。C99の機能を使って、変数宣言と同時に初期化を行っています。
#include <stdint.h> #include <stdio.h> int main(void) { // for文で合計を求める int32_t total = 0; for (int32_t i = 0; i < 10; i++) { total += i; } printf("%d\n", total); }
意味的には次のコードのシンタックスシュガーとなっています。
#include <stdint.h> #include <stdio.h> int main(void) { // for文で合計を求める int32_t total = 0; { int32_t i; for (i = 0; i < 10; i++) { total += i; } } printf("%d\n", total); }
新しめのgccであれば、オプションなしで動くと思います。古めのgccであれば次のオプションをつけます。
gcc -std=c99 -o a a.c && ./a gcc -std=gnu99 -o a a.c && ./a