CodeZine(コードジン)

特集ページ一覧

繰り返し

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/10/10 15:30

 分岐命令は条件によって処理の流れを「分岐」させる命令でした。今度は条件によって処理を繰り返す「繰り返し」を学びましょう。一般にはループ処理ともいいます。C言語では、繰り返しの命令は大きく3つあります。どれかひとつだけ知っているだけでもプログラムは十分書けます。でもそんなに難しくないので、一気に3つとも覚えてしまいましょう。

目次

ループ3兄弟、いちばんはじめは「for文」

 for文は、あらかじめ繰り返しの回数が決まっている場合に便利な命令です。

 for文の文法は、以下のとおりです。

for ( 初期処理 ; 条件 ; 更新処理 ){
    実行文1;
    実行文2;
      :
}

 「初期処理」は、最初に1回だけ実行します。ループ処理には、「何回くりかえしたか」を数えるためのカウンタ変数(回数を数えるための変数)が必要です。通常は、この初期処理の場所でカウンタ変数の初期化を行います。

 「条件」は、if文のときと同じです。通常はカウンタ変数に対する比較を記述します。

 最後の「更新処理」は、ループを1回繰り返すごとに毎回実行する処理を記述します。これも通常はカウンタ変数を更新する処理を記述することが多いです。

 for文の動作の様子を図1に示します。

図1:for文の処理の流れ
図1:for文の処理の流れ

 以下に簡単な具体例(プログラム)を示しますので、図1と対比してみてみましょう。

main()
{
    int    i;
    int    Val;

    Val = 1;

    for ( i = 0 ; i < 4 ; i = i + 1 ){
        Val = Val * 2;
    }
}

 このプログラムでは、変数iをループ回数のカウンタに使って、変数Valを2倍にする処理を繰り返します。ループを抜けると、変数Valは2のべき乗の値になります。

 まず、「初期処理」はi = 0です。ここでループ変数を初期化しています。次に、「条件」はi < 4、つまりカウンタ変数iが4より小さい間条件が成立してfor文が実行され続けます。その後ろのi = i + 1が「更新処理」です。実行文はVal = Val * 2;の1文だけです。

 図1の処理の流れに従ってfor文の動作を追ってみましょう。まず初期処理で変数iが0に初期化されます。次に条件をみると、iは0なので0 < 4が成立します。したがって、実行文Val = Val * 2の実行を行います。次に更新処理、ここではカウンタ変数iに1を加えます。iは1になって再び条件の判断へいきます。1 < 4なので条件は成立し、また実行文の実行を行います。これをくりかえすと、更新処理でiが4になるときがやってきます。すると条件の判断で、4 < 4は不成立となってfor文を終了します。実行文は都合4回実行されますので、Valは2の4乗で16になるはずです。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • 舘 伸幸(タチ ノブユキ)

    NECマイクロシステム株式会社 勤務 NPO法人SESSAME 所属 開発ツールのソフトウェア開発を経て組込みソフトウェア開発に従事。プライベートにも半田ごては手放さない。 2006年からSESSAME に参加。若い世代に物を作る楽しさを伝えていきたい。

バックナンバー

連載:たった5つのルールではじめるC言語開発

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5