【C言語】第2章第5回:繰り返し処理:for文の基本
for
文は、繰り返し処理を効率的に記述するための構文です。この章では、for
文の基本的な使い方を解説し、実用的なプログラム例を通じてその利便性を学びます。
1. for文とは?
for
文は、特定の条件が満たされるまでループ処理を繰り返すための構文です。
基本構文
for (初期化; 条件; 更新) {
// 繰り返し処理
}
構造の説明:
- 初期化:ループの開始時に1回実行される処理(例:カウンタの初期化)。
- 条件:ループを継続する条件。条件が偽(
false
)になるとループが終了します。 - 更新:各ループの繰り返し後に実行される処理(例:カウンタの増減)。
2. for文の基本例
以下のプログラムは、1から5までの数を順に出力します。
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) { // カウンタ変数iを1から5まで増加
printf("%d\n", i); // カウンタ変数iの値を出力
}
return 0;
}
解説:
int i = 1;
:カウンタ変数i
を1に初期化。i <= 5;
:i
が5以下の場合にループを継続。i++;
:各ループ後にi
を1増加。printf("%d\\n", i);
:i
の値を出力。
3. for文を使った実用例
例1:数値の合計を計算
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 10; i++) { // 1から10までの数を加算
sum += i; // 現在のiをsumに加算
}
printf("The sum of numbers from 1 to 10 is %d.\n", sum);
return 0;
}
解説:
- カウンタ
i
を1から10まで増加させ、各値をsum
に加算。 - ループ終了後、合計値を出力。
例2:九九の掛け算表を出力
#include <stdio.h>
int main() {
for (int i = 1; i <= 9; i++) { // 行のループ
for (int j = 1; j <= 9; j++) { // 列のループ
printf("%d x %d = %d\t", i, j, i * j); // 掛け算の結果を出力
}
printf("\n"); // 行の終了時に改行
}
return 0;
}
このプログラムは、九九の掛け算表を整然と出力します。
4. 無限ループのfor文
条件式を省略すると、for
文は無限ループになります。
例:無限ループ
#include <stdio.h>
int main() {
for (;;) { // 条件を省略すると無限ループ
printf("This is an infinite loop.\n");
break; // 無限ループを終了
}
return 0;
}
このプログラムでは、break
を使用して無限ループを制御します。
5. 練習問題
以下の課題に挑戦して、for
文の使い方を練習してください。
- 1から100までの数値のうち、偶数のみを出力するプログラムを作成してください。
- ユーザーに数値を入力させ、その数までの合計を計算するプログラムを作成してください。
- 3の倍数である数を1から50まで出力するプログラムを作成してください。
6. 練習問題の解答と解説
問1の解答
#include <stdio.h>
int main() {
for (int i = 2; i <= 100; i += 2) { // 偶数だけを処理
printf("%d\n", i);
}
return 0;
}
問2の解答
#include <stdio.h>
int main() {
int n, sum = 0;
printf("Enter a number: ");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += i; // 合計を計算
}
printf("The sum of numbers from 1 to %d is %d.\n", n, sum);
return 0;
}
問3の解答
#include <stdio.h>
int main() {
for (int i = 3; i <= 50; i += 3) { // 3の倍数だけを処理
printf("%d\n", i);
}
return 0;
}
7. まとめ
for
文は、繰り返し処理を簡潔に記述できる強力なツールです。練習問題を通じてその使い方を習得し、効率的なプログラムを書く力を身につけましょう。