C言語で、繰り返し処理を行いたい時にfor文を使用します。書式は以下のとおりです。
C言語で繰り返し処理を行ないたい場合はfor文を使用します。for文の構文、break、continueの使い方について説明します。
C言語で、繰り返し処理を行いたい時にfor文を使用します。書式は以下のとおりです。
for (式1;式2;式3) 文;
式1はループに入る前に1度だけ実行されます。一般的にここで初期化が行われます。
式2はループの継続条件です。この式を評価して真であれば、ループ本体が実行されます。
式3は、ループ本体実行後に実行されます。主にカウンタ変数の更新などが行われます。
そして、再度、式2が評価され真ならばループ実行、式3の実行、と繰り返し処理が行われます。式2の評価が偽となった時点でfor文から抜け出して、次の処理へ進みます。
ループの本体は複数の文でもかまいません。その時は{}で括ります。
for (式1;式2;式3) {
文;
文;
:
}
式1、式2、式3は、それぞれ省略可能です。式2が省略された場合、式2は永久に真とみなされます。ループを抜けるには、breakやreturnを行う必要があります。
for文の先頭でループの継続条件が評価され偽ならばループを抜けますが、それ以外の時でもループを抜けたい時があります。その時はbreak文を使用します。例を下記に示します。
for (i=0;i<n;i++) {
/* 処理 */
if (end_flag) {
/* 他の終了条件に一致したら、その時点でループから抜けることができる */
break;
}
/* 処理 */
}
continue文はループの中で使用されます。ループ処理を途中で打ち切り、次のループ処理を開始させます。
for文のループの中で、continueが実行されると、式3(更新部分の処理)が実行されてから、ループの継続条件が評価され、真なら次のループ処理が実行されます。
continueの使用例を下記に示します。
for (i=0;i<n;i++) {
if (ok_flag[i]) {
/* カウンタiでの実行が可能かの配列を参照 */
/* 実行不可なら以降の処理を行わず次のループ処理を開始 */
continue;
}
/* 処理 */
}