この記事では、C言語のfor文の使い方について解説します。
for文を使うことで任意の回数だけ繰り返し処理することができます。
それでは、使い方を見ていきましょう!
for文の使い方
for文は、以下のように記述します。
for(初期化式; 条件式; 変化式){ // 繰り返す処理 }
| 初期化式 | for文の条件式に使用する変数を宣言・初期化する。外部で宣言した変数を初期化することもできます。 |
|---|---|
| 条件式 | この条件式がtrueの間、ブロック内の処理を繰り返し行います。 |
| 変化式 | 一度の処理が終わるたびに実行される式です。条件式で使用している変数の値を変化させるために使用します。 |
サンプル
以下のコードは、int iを0で初期化してi < 3の間だけ繰り返し処理するfor文です。繰り返し処理されるたびにiをインクリメントします。iが3以上になった時にループが終了します。
#include <stdio.h> int main(void) { for(int i = 0; i < 3; i++){ printf("%d\n", i); } }
実行結果
0 1 2
処理をスキップする[continue]
continue句が処理されると次のループにスキップされます。以下のコードでは、iが1の時にcontinue句が処理されます。
#include <stdio.h> int main(void) { for(int i = 0; i < 3; i++){ if(i == 1)continue; printf("%d\n", i); } }
実行結果
0 2
ループを抜ける[break]
break句が処理されるとループ処理を抜け出します。以下のコードでは、iが1の時にbreak句が処理されます。
#include <stdio.h> int main(void) { for(int i = 0; i < 3; i++){ if(i == 1)break; printf("%d\n", i); } }
実行結果
0
多重ループ
for文ブロック内にfor文を記述することで多重ループさせることができます。
#include <stdio.h> int main(void) { for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++){ printf("i: %d, j: %d\n", i, j); } } }
実行結果
i: 0, j: 0 i: 0, j: 1 i: 0, j: 2 i: 1, j: 0 i: 1, j: 1 i: 1, j: 2 i: 2, j: 0 i: 2, j: 1 i: 2, j: 2
for文はいくつでも重ねることができますが、あまりに重ねると可読性が下がってしまいます。なので、三重ループくらいまでに留めておきましょう!
無限ループ
for文を使って無限ループすることができます。
書式
以下のようにセミコロンのみを記述します。
for(;;){ // 繰り返す処理 }
サンプル
このままでは無限にループしてしまうのでbreak句を使って途中で処理を抜けれるようにします。以下のコードでは、-1が入力されるまで無限にループします。
#include <stdio.h> int main(void) { int num; for(;;){ printf("整数: "); // 整数を受け取る scanf("%d", &num); // -1が入力された際にループを抜け出す if(num == -1)break; printf("「%d」が入力されました\n", num); } }
実行結果
整数: 1 「1」が入力されました 整数: 2 「2」が入力されました 整数: -1
for文 × 配列
配列はfor文と組み合わせて使うことでとても強力に扱うことができます。以下のコードでは、for文で配列に格納されている要素を全て出力しています。
#include <stdio.h> int main(void) { int nums[] = {1, 2, 3}; // 配列の要素数 int len = sizeof(nums) / sizeof(nums[0]); for(int i = 0; i < len; i++){ printf("%d\n", nums[i]); } }
実行結果
1 2 3
まとめ
この記事では、C言語のfor文を使った繰り返し処理について解説しました。
for文を使うことで任意の回数だけ繰り返し処理を行うことができます。また、配列と組み合わせて使うことでより強力に扱うことができます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ


