C言語で繰り返し処理(反復処理)を実現するために良く使用されるのが for 文です
for文 の他にも while文、do while文があります
今回は、for文の使い方をサンプルソース付きで説明します
目次
forの構文
for ( 節1 ; 式2 ; 式3 ) 文
forの説明
省略可能で文(繰り返し処理)を行う前の初期化処理(変数の初期化等)を記述する場所
変数宣言を記述することもできる
宣言できるのは,自動記憶域期間をもつオブジェクトだけとする(register記憶域クラス指定子があってもよい。)
JISX3010 プログラム言語C
省略可能で文(繰り返し処理)の実行条件を記述する場所
条件が真となる間(成立する間)文(繰り返し処理)が実行される
省略した場合は、常に真(条件が成立する)として扱われる
省略可能で文(繰り返し処理)実行後の後処理(変数のインクリメント等)を記述する場所
繰り返したい処理を記述する場所
文の途中で式2に戻る場合は、continue文 を使用する
文の途中で繰り返しを終了したい場合は、break文 を使用する
式2は制御式とし,ループ本体の各実行の前に評価する。式3はループ本体の各実行の後にボイド式として評価する。節1が宣言である場合,そこで宣言する変数の有効範囲は宣言の残り及び他の二つの式を含むループ全体とする。その宣言に到達するのは,制御式の最初の評価の前とする。節1が式である場合,それは制御式の最初の評価の前にボイド式として評価する(133)。 節1も式3も省略してよい。式2を省略した場合,0でない定数によって置き換える。
JISX3010 プログラム言語C
forの使い方サンプル
実行結果が同じになるように for文の記述を変えた簡単なサンプルを紹介します
節1、式2、式3の記述あり
基本的なfor文の使い方になります
#include <stdio.h>
int main(int argc, char *argv[]) {
for(int i=0; i < 5; i++) {
printf("loop i=%d\n",i);
}
}
式2の記述を省略
繰り返しの終了条件が複数ある場合などにこの記述方法を使用します
#include <stdio.h>
int main(int argc, char *argv[]) {
for(int i=0; ; i++) {
printf("loop i=%d\n",i);
if(i <= 4) {
break;
}
}
}
繰り返しの終了条件は、文の中に if文 を使用して記述しています
節1、式2、式3の記述を省略
節1の省略
for文以外の場所で変数の宣言・初期化を行いたい場合などに省略します
式3の省略
文(繰り返し処理)後に行う処理がない
または、毎回行う必要がない場合などに省略します
#include <stdio.h>
int main(int argc, char *argv[]) {
int i = 0;
for( ; ; ) {
printf("loop i=%d\n",i);
if(i <= 4) {
break;
}
i++;
}
}
for文まとめ
C言語で繰り返し処理(反復処理)を実現する際に良く使用する for文 です
使用する際、for文に記述する節1、式2、式3、文がどのタイミングで実行されるかを意識して使用するのが重要です
節1で宣言した変数の有効範囲は、for文内のみ有効
式2で指定する条件は、文の前に実行される
文は式2で指定した条件が真の場合(成立する場合)に実行される