C言語 for 繰り返し スクリプトの書き方

バイオインフォ道場、くまぞうです。

for文を使うと、コードブロックを指定回数だけ実行することができます。

スポンサーリンク



for文による繰り返し処理

for文の書き方

繰り返し用の変数を準備し、初期値をセットします。次に、繰り返し条件と反復の具合を決めます。例えば、10回繰り返したい場合は、初期値0・繰り返し条件10より小さい・反復を1ずつ増やす、と指定します。また、変数の評価は増加でも減少でもよく、10からはじめて1つずつ減少するようにしても同じことができます。また、繰り返しで用いる変数は、繰り返し処理の中で利用することができます。

for (初期値; 繰り返し条件; 反復) {
  繰り返す処理;
  ...
}

繰り返し処理について

for文の先頭に書く「繰り返し条件」を満たしている場合に繰り返します。また、breakやcontinueを使うことで、繰り返し処理を抜けたり・途中で折り返したりなどの制御を行うことができます。

プログラム

test_for.c
#include <stdio.h>

void main(void) {

  int i = 0;
  for (i=0; i<5; i++) {
    printf("hello %d\n", i+1);
  }
}
test_for2.c
#include <stdio.h>
#include <string.h>

void main(int argc, char* argv[]) {

  int max = atoi(argv[1]);

  int i = 0;
  for (i=0; i=3) break;
    printf("hello %d\n", i+1);
  }
}

コンパイル&スクリプト実行

$ gcc test_for.c -o test_for
$ ./test_for
hello 1
hello 2
hello 3
hello 4
hello 5
$ gcc test_for2.c -o test_for2
$ ./test_for2 4
hello 1
hello 2
hello 3

プログラムについて

test_for.cでは、for文による繰り返し処理を試しました。「変数i」が0〜4のとき「hello #」を表示します。5では、繰り返し条件を満たさないので終了します。test_for2.cでは、繰り返し回数を外部から指定しました。指定した回数を条件に取り込んで、繰り返し処理を実行しています。但し、3回以上表示したら、breakで繰り返し処理を抜けるようにしました。atoiは、文字を整数に変換する関数です。変換不能の場合は0が返るので、繰り返し処理を行いません。

繰り返し処理は、配列などの扱いで用いられることが多いです。「初期条件」や「繰り返し条件」はきちんと考えて指定しましょう。確保した配列のサイズを超えて処理するようなプログラムを書くと、発見しにくいバグになることもあります。

スポンサーリンク