for文を使った繰り返し処理

指定した回数だけ繰り返し処理を行うには for 文を使用すると便利です。ここでは C 言語における for 文を使った繰り返し処理の方法について解説します。

(Last modified: )

for文の書式と使い方

for 文は一定の回数繰り返しを行う場合に使用します。 for 文の書式は次のようになっています。

for (初期化;条件式;変化式)
  実行する処理;

for 文は繰り返し回数をカウントするための変数を 1 つ使用します。まず初期化式で変数に初期値を設定します。次に条件式で繰り返しを継続するための条件を記述します。例えば「変数の値が 10 以下かどうか」などです。条件式が真の間は繰り返しが行われます。そして変化式には繰り返しが 1 回行われる度に変数の値を変化させるための式を記述します。

例として、繰り返しを 3 回行う for 文を作ってみます。初期値として変数に 1 を格納、条件式は「変数の値が 3 以下かどうか」、そして変化式は繰り返しが行われる毎に変数に 1 を加える、とします。具体的には次のようになります。

int i;
for (i = 1; i <= 3; i = i + 1)
  printf("こんにちは\n");

このプログラムを実行すると次のように処理が行われていきます。

変数「i」に 1 を格納する

変数「i」の値が 3 以下かどうか評価する(真となる)
「こんにちは」を出力する
変数「i」の値に 1 を加えて 2 にする

変数「i」の値が 3 以下かどうか評価する(真となる)
「こんにちは」を出力する
変数「i」の値に 1 を加えて 3 にする

変数「i」の値が 3 以下かどうか評価する(真となる)
「こんにちは」を出力する
変数「i」の値に 1 を加えて 4 にする

変数「i
」の値が 3 以下かどうか評価する(偽となる)
繰り返し処理終了

for 文の基本的な流れはこのようになります。最初の 1 回だけ変数に初期値を格納します。そして for 文の繰り返し処理を行う前にまず条件式を評価します。評価した結果が真の場合は for 文の繰り返し処理を行います。最後に変数の値を変化させるための処理を実行します。ここまでで繰り返し処理は 1 回行われました。そしてまた条件式の評価に戻り、これを繰り返します。

変化式を適切に設定しないと条件式がいつまでも偽にならないため、繰り返し処理が無限に行われてしまう(無限ループ)ことになりますので注意して下さい。

for 文ではカウント用の変数を 1 つ用意し、格納された数値を 1 ずつ増加させて決められた回数だけ繰り返す処理がよく用いられます。このとき繰り返したい回数をカウントする目的で使用される変数は慣例として i が使われます。

またた先ほどのサンプルでは変化式として i = i + 1 と記述しましたが、単に i++ と書くのがシンプルに記述できるためよく使われます。

int i;
for (i = 1; i <= 3; i++)
  printf("こんにちは\n");

一度の繰り返しで複数の処理を実行する

先ほどの書式では繰り返しの中で行われる処理はすぐ次に書かれた行の処理を実行するようになっていました。一度の繰り返しの中で複数の処理を行うには実行する範囲を {}> で囲んで指定します。

for (初期化;条件式;変化式){
  実行する処理1;
  実行する処理2;
  実行する処理3;
  ...;
}

実際のプログラム例としては次のようになります。

int i;
for (i = 1; i <= 3; i++){
  printf("こんにちは\n");
  printf("%d回目の繰り返しです\n", i);
}

このサンプルでは条件式が真だった場合、 1 回の繰り返し処理として { から } の中に記述された 2 つの処理が実行されることになります。

サンプルコード

では簡単なサンプルプログラムを作成して試してみます。

#include <stdio.h>

int main(void){
  int i;

  for (i = 1; i <= 3; i++){
    printf("こんにちは\n");
    printf("%d回目の繰り返しです\n", i);
  }

  return 0;
}

上記を「test1-1.c」の名前で保存します。まずコンパイルを行います。

for文

コンパイルが終わりましたら「test1-1」と入力して実行します。

for文

プログラムが実行されて繰り返し処理が 3 回実行されました。

-- --

C 言語における for 文を使った繰り返し処理の方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。