第十一回 6 月 30 日

課題総評

5 制御文(続き)

5.3繰り返し文

5.3.1 for

for 文は、所定回の繰り返しをさせる文であり、以下のような形をしている。


for (初期文; 条件; 反復文)
    本文;

5.3.2 while

while 文は前判定反復であるので、繰り返しの前に条件式による判定がくる。 従って、条件式が真でなければ、反復は一度も実行されない。


for (初期文; 条件; 反復文)
    本文;

という for 文は、while 文を用いて以下のように書き換えることができる。


初期文;
while(条件) {
    本文;
    反復文;
}

for 文の方が反復条件を一カ所にまとめて記述できるので、C プログラマは for 文を好む傾向にある。

5.3.3 do

do 文は後判定反復であるので、繰り返しの判定条件が処理の後ろにくる。 従って、最低一回は処理が実行される。


do {
   文;
   ...
} while(条件式);

5.4 分岐文

5.4.1 goto

構造化プログラミングを用いると goto 文は使わないでプログラムを書くことができる。goto 文を用いる場面は滅多にない。構文は


goto ラベル;

のように用いる。ここで「ラベル」は変数名と同じ規則に従って名前をつけることができる。文にラベルをつけるには、


ラベル: 文;

とする。例えば以下のような使い方をする。


    for(i=0; i<10; i++) {
        for(j=0; j<10; j++) {
            if ( data == 0 )
                goto found;
            ....
            ....
        }
    }
    printf("Not found\n");
    return 0;
found :
    printf("Found\n");
    return 0;

5.4.2 continue

continue 文は、ループ本体の中にあって、処理が continue 文に出会うと、ループの先頭から処理が実行されることになる。

5.4.3 break

break 文はループを終了させる。switch 文においては switch 文を終了させる。

5.5 条件演算子

? は条件式 if 文と代入が組み合わさったものである。書式は


条件式 ? 値1 : 値2

である。条件式が真ならば値1が代入され、偽ならば値2が代入される。


戻る

Shin-ichi ASAKAWA
asakawa@ieee.org