SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

繰り返し


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

ループ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になるはずです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
for文を動かしてためしてみよう

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
たった5つのルールではじめるC言語開発連載記事一覧

もっと読む

この記事の著者

舘 伸幸(タチ ノブユキ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3729 2009/03/26 18:03

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング