本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第6回|C言語のfor文と繰り返し処理を学ぶ:同じ処理をまとめて実行する

はじめてのC言語 | 第6回
はじめに
前回は、if 文を使って条件によって処理を分ける方法を学びました。
今回は、同じ処理を繰り返し実行する for 文を扱います。
この回の目的は次の4点です。
- for 文の基本形を理解する
- 回数を指定した繰り返しを書けるようにする
- カウンタ変数の役割を知る
- if 文と組み合わせた基本的な使い方を確認する
繰り返し処理とは何か
繰り返し処理とは、同じような処理を何度も実行することです。
たとえば、次のような場面で使います。
- 1から5まで順に表示する
- 同じメッセージを10回表示する
- 条件を満たす値だけを表示する
C言語では、こうした処理を for 文で書けます。
for 文の基本形
書式
for (初期化; 条件式; 更新) {
繰り返す処理;
}それぞれの意味は次のとおりです。
- 初期化: 最初に1回だけ実行する
- 条件式: 真の間は繰り返す
- 更新: 1回ごとの処理のあとで実行する
最初のサンプルコード
ソースコード
for_sample.c という名前で保存します。
#include <stdio.h>
int main(void) {
int i;
for (i = 1; i <= 5; i++) {
printf("%d\n", i);
}
return 0;
}実行手順
1. 作業ディレクトリに移動する
cd ~/Desktop2. コンパイルする
clang for_sample.c -o for_sample3. 実行する
./for_sample実行結果:
1
2
3
4
5コードの読み方
int i;
繰り返しの回数を管理するための変数を宣言しています。
このような変数をカウンタ変数と呼びます。
for (i = 1; i <= 5; i++)
この部分が for 文の中心です。
- i = 1 : 最初に i を 1 にする
- i <= 5 : i が 5 以下の間、繰り返す
- i++ : 1回の処理が終わるごとに i を 1 増やす
printf(“%d\n”, i);
現在の i の値を表示しています。
i++ とは何か
i++ は、i の値を 1 増やす書き方です。
i++;これは次とほぼ同じ意味です。
i = i + 1;for 文では、カウンタを1ずつ増やす目的でよく使います。
0から始める例
C言語では、0から数え始める書き方もよく使います。
#include <stdio.h>
int main(void) {
int i;
for (i = 0; i < 5; i++) {
printf("%d\n", i);
}
return 0;
}実行結果:
0
1
2
3
4この場合、i < 5 なので 5 は表示されません。
回数だけ繰り返す例
同じ文字列を3回表示する例です。
#include <stdio.h>
int main(void) {
int i;
for (i = 0; i < 3; i++) {
printf("Hello\n");
}
return 0;
}実行結果:
Hello
Hello
Hellofor 文と if 文を組み合わせる
繰り返しの中で条件分岐も使えます。
偶数だけ表示する例
#include <stdio.h>
int main(void) {
int i;
for (i = 1; i <= 10; i++) {
if (i % 2 == 0) {
printf("%d\n", i);
}
}
return 0;
}実行結果:
2
4
6
8
10処理の流れを順に確認する
次のコードを例にします。
for (i = 1; i <= 3; i++) {
printf("%d\n", i);
}実行の流れは次のとおりです。
- i = 1 を実行する
- i <= 3 を判定する
- 真なので printf を実行する
- i++ を実行する
- 再び i <= 3 を判定する
- 条件が偽になるまで繰り返す
初心者がつまずきやすい点
= と == を混同しない
for 文の条件で比較を書くときは == を使います。
ただし、初期化では代入なので = を使います。
例:
for (i = 0; i < 5; i++) {
printf("%d\n", i);
}- i = 0 は代入
- i < 5 は比較
i <= 5 と i < 5 の違い
この違いで繰り返し回数が変わります。
for (i = 1; i <= 5; i++)これは 1 から 5 まで表示します。
for (i = 1; i < 5; i++)これは 1 から 4 まで表示します。
波かっこを省略しない
1行だけでも波かっこは書く方が安全です。
for (i = 0; i < 3; i++) {
printf("Hello\n");
}よくあるエラー
use of undeclared identifier ‘i’
原因: i を宣言していません。
対処: 先に int i; を書きます。
expected ‘;’
原因: printf などの行末に ; がありません。
無限ループになる
更新式を書き忘れると、条件が変わらず繰り返しが止まらないことがあります。
誤った例:
for (i = 1; i <= 5; ) {
printf("%d\n", i);
}この場合、i が増えないため、条件がずっと真のままになります。
練習用コード
次のコードを書いて、1 から 10 まで表示してください。
#include <stdio.h>
int main(void) {
int i;
for (i = 1; i <= 10; i++) {
printf("%d\n", i);
}
return 0;
}偶数だけ表示する練習
#include <stdio.h>
int main(void) {
int i;
for (i = 1; i <= 10; i++) {
if (i % 2 == 0) {
printf("%d\n", i);
}
}
return 0;
}まとめ
今回のポイントは次のとおりです。
- for 文を使うと、回数を決めた繰り返し処理を書ける
- for (初期化; 条件式; 更新) の形で書く
- i++ は値を1増やす操作である
- if 文と組み合わせると、条件付きの繰り返し処理ができる
この回では、C言語の for 文を使った繰り返し処理を確認しました。
繰り返しは、条件分岐と並んで基本中の基本です。
次回予告
次回は、while 文を使った繰り返し処理に進みます。
「条件が成り立つ間、処理を続ける」という考え方を、for 文との違いを意識しながら、やさしく見ていきましょう。
復習してみよう
復習したい方は、こちらもあわせてご覧ください。













