switch
文の中の case
文は定数式でなければならない。
従って、
case year % 5 == 0:
などという書き方はできない。
if
文で判定するなら、
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 )
printf("閏年です\n");
else
printf("平年です\n");
となる。しかし無理する必要は無い。
for
文
for
文は、所定回の繰り返しをさせる文であり、以下のような形をしている。
for (初期文; 条件; 反復文)
本文;
hello10.c
summation.c
sum_square.c
を作れsum_odd.c
を作れfactorail.c
を作れ。<limits.h>
で定義されている INT_MAX
を越えてしまう。演算結果が INT_MAX
を越えた時、計算を中止するようにプログラムを書き改めよ。また、階乗の計算を long long int
型の変数で行わせるとどのくらいの桁数まで計算できるようになるか。int
型変数を入力し、和と平均値を出力するプログラム average1.c
while
文
while
文は前判定反復であるので、繰り返しの前に条件式による判定がくる。
従って、条件式が真でなければ、反復は一度も実行されない。
for (初期文; 条件; 反復文)
本文;
という for
文は、while
文を用いて以下のように書き換えることができる。
初期文;
while(条件) {
本文;
反復文;
}
for
文の方が反復条件を一カ所にまとめて記述できるので、C プログラマは for
文を好む傾向にある。
while.c
drill.c
を作れwhile
文を用いて作れdo
文
do
文は後判定反復であるので、繰り返しの判定条件が処理の後ろにくる。
従って、最低一回は処理が実行される。
do {
文;
...
} while(条件式);
do-while.c
countdown.c
を do
文を用いて作れsummation2.c
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;
continue
文
continue
文は、ループ本体の中にあって、処理が continue
文に出会うと、ループの先頭から処理が実行されることになる。
continue.c
break
文
break
文はループを終了させる。switch
文においては switch
文を終了させる。
break
文を用いて書き直すbreak.c
?
は条件式 if
文と代入が組み合わさったものである。書式は
条件式 ? 値1 : 値2
である。条件式が真ならば値1が代入され、偽ならば値2が代入される。
max.c