= 処理を繰り返すということ =
これまで、条件に応じて処理を分岐させるという事をやってきました。<
>
次に、もう一つ重要な「同じ処理を繰り返す」という処理の書き方について勉強して行きましょう。<
>
<
>
同じ事を繰り返すというのは、人間にとってはすごく苦痛なことです。こういうことはコンピュータにやらせるのが一番速いし正確なのです。<
>
そういう意味で、繰り返しは一番コンピュータに向いている作業といえるでしょう。
= for文 =
繰り返しを実現するほうほうとして、まずfor文を覚えましょう。
{{{#!highlight c
for (初期設定式; 条件式; 再設定式 ){
〜〜
}
}}}
for文はこのような構造になっています。名前とかはどうでもいいので、とりあえず括弧の中に3つ式があるのだということを覚えてください。<
>
ではfor文が実際どのように実行されるのかを順を追って説明します。
1. for文に差し掛かると、まず初期設定式(一番左の式)が実行される。
2. 続いて条件式(真ん中の式)をみて、真かどうか調べる。
3. 条件式が偽ならfor文は終了。
4. 条件式が真ならfor文の中身を順番に実行。
5. 中身の実行が終わったら、再設定式(一番右の式)を実行。
6. 2に戻る。
こうやって条件式が真の間は実行され続けるので、繰り返しができるわけです。<
>
では実際の例を見てみましょう。
{{{#!highlight c
int i;
for (i=0; i<10; i++ ){
printf("繰り返し\n");
}
}}}
さて上のプログラムが実行されると、どうなるでしょうか。<
>
答えは、なかのprintfが10回実行される、です。<
>
なぜそうなるのか、さっきのfor文の動作手順に従って考えてみると良いと思います。<
>
この例のように、for分は'''決まった回数の繰り返しをやる'''のにすごく便利です。<
>
さて、この例では繰り返しの回数を数える役割の変数として'''i'''というのを使いました。別にこの名前にしなければ死ぬとかいうわけではないんですが、<
>
むかしからこの役割の変数にはiという名前をつけるのが当たり前のようです。<
>
他の人に読んでもらいやすいプログラムにするためにも、iを使うようにしましょう。<
>
もう一つ変数が必要なときは、jを使うといいです。そっからk, l……と増やしていけます。
== forの入れ子 ==
ifの時と同じように、forも入れ子に出来ます。
== 演習 ==
1から順番に2倍、2倍としていって、それぞれの答えを出力するプログラムを作りなさい。ただし10000を超えた時点でプログラムが終了するように作りなさい。
{{{
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
}}}
次のプログラムを実行するとどのような出力が得られるか。計算機上で実行せずに考えなさい。
{{{#!highlight c
#include
int main(void){
int i, j;
for (i=1; i<=9; i++){
for (j=1; j<=9; j++){
printf("%d ", i*j);
}
printf("\n");
}
return 0;
}
}}}