第3章 C言語の条件分岐 ~ if と for について ~

 皆さんは前の章で、変数と変数の中身を表示することを習いましたね。 では復習で次のリスト5を打ち込んで下さい。 そして、先に実行結果を頭に浮かべてから、 プログラムを実行をして見て下さい。

— リスト5 —

#include <stdio.h>
void  main()
{
        int  count;

        count = 0;

        count ++;

        printf( "countは今%dです\n",  count );

        count ++;

        printf( "countは今%dです\n",  count );

        count ++;

        printf( "countは今%dです\n",  count );

        count ++;

        printf( "countは今%dです\n",  count );

        count ++;

        printf( "countは今%dです\n",  count );

}

 同じ処理の繰り返しが続きますね。 打ち込むのが、だいぶ面倒臭かったのではないでしょうか?

 ワープロやエディタには、コピー&ペースト(貼り付け)機能が付いているので、 タイプ回数を減らすことはできます。しかし、それも本来だったら賢いやり方ではありません。 プログラマーは常に賢いやり方を求めるべきです。 実は、上のリスト5は以下のように書き換えることが出来ます。

— リスト5’ —

#include <stdio.h>
void  main()
{
        int  count;

        for  (count = 0;  count < 5; count++)  {
                printf( "countは今%dです\n",  count );
        }
}

 たったこれだけに置き換わってしまいましたね。さっそく打ち込んで、実行してみて下さい。

 C言語では同じことをなんども繰り返したい時に、forを使います (注13) 。forは英語で、「…の間、ずっと」と言う意味がありますから、まさにぴったしですね。

 forはとても便利なものですからどんどん使いましょう。そして、forには以下のような決まりがあります。

 for ( 初めの設定; 繰り返しを続ける条件; 繰り返す毎に行われる処理) {
    繰り返したい処理 ;
 }

 これは、先ほどのfor文は次のように書き換えられるということを意味しています。 もちろん、通常はこのような書き方はしません。

#include <stdio.h>
void  main()
{
        int  count;

        count = 0;

        for (  ; count < 5;  ) {
                printf( "countは今%dです\n",  count );

                count++;
        }
}

 どうやら、forのパーツはそれぞれ省略できるようですね。 実はC言語の文法上では、for ( ; ; ) となっていてもコンパイルが許されてしまうのです。 しかし、これではループ条件がないために、永久にループしてしまいます (私は初め見た時、一度もループをしないのだろうと思いましたが)。

 ここでいきなり質問です。先ほどの記述で、変数countは最後にはいくつになってるでしょう。

 「count < 5」とあったから、4ですかね。それとも5ですかね。予想を立てた上で、皆さんで調べて見て下さい。

< 前のページへ
お問い合わせ
  • ようかん
  • SG Labs(エスジー ラボ)
  • ITERACY
  • RiceLog(ライスログ)
  • Salesforce導入コンサルティング
  • SES営業向け用語講座

Pagetop