この記事では、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
文を使うことで任意の回数だけ繰り返し処理を行うことができます。また、配列と組み合わせて使うことでより強力に扱うことができます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ