
C言語入門|プログラムの流れを理解する:順次・分岐・繰り返しの制御構造
ここからいよいよ、「プログラムらしさ」 が一気に高まる章に入ります😊
第2章・第3章では、変数・型・演算子・命令など、
1行ずつ正しく書くための道具 を学んできましたね。
実はこれまで書いてきたプログラム、
すべて 上から下へ順番に実行されているだけ でした。
でも、ゲームや業務システムでは、
- 条件によって処理を変えたい。
- 同じ処理を何度も繰り返したい。
といった場面がたくさん登場します🎮📊
そこで重要になるのが、
プログラムの流れ(制御構造・制御フロー) です。
プログラムの流れ(制御構造)とは?🤔
プログラムの流れとは、
文がどの順番で実行されるか を表したものです。
C言語をはじめ、多くのプログラミング言語では、
次の 3つの制御構造 が基本になっています。
| 制御構造 | 役割 |
|---|---|
| 順次 | 上から下へ順番に実行 |
| 分岐 | 条件によって処理を切り替える。 |
| 繰り返し | 条件を満たす間、同じ処理を続ける。 |
実はこの3つだけで、
あらゆるプログラムが作れる ことが理論的にも証明されています✨
順次:上から下へ素直に実行する🙂
まずは一番シンプルな 順次 です。
これは、
次の文 → 次の文 → 次の文
と、何も考えずに上から実行される流れです。
順次のイメージ
┌──┐
│ 文 │
└──┘
↓
┌──┐
│ 文 │
└──┘
これまでに書いてきたプログラムは、
すべてこの 順次 の流れでした😊
順次のサンプル
プロジェクト名:4-1-1 ソースファイル名: sample4-1-1.c
#include <stdio.h>
int main(void)
{
int price = 120;
int tax = 10;
int total = price + tax;
printf("合計金額は %d 円です。\n", total);
return 0;
}このプログラムは、
1️⃣ 変数を用意
2️⃣ 計算
3️⃣ 表示
という流れを、そのまま順番通り に実行しています。
分岐:条件によって流れを変える🔀
次に登場するのが 分岐 です。
分岐は、
条件が正しいかどうか によって
実行する文を切り替える仕組み です。
分岐のイメージ
YES
┌──┐
┌→ │ 文 │
│ └──┘
┌───────┐
│ 条件判定 │
└───────┘
│ ┌──┐
└→ │ 文 │
└──┘
NO
条件判定の結果が YES か NO かで、
まったく違う処理 が実行されます🙂
分岐で使う命令:if
分岐の代表的な命令が if です。
書式
if (条件)
{
文;
}役割
- 条件が正しいときだけ
- 中の文を実行する
という命令です。
分岐のサンプル
プロジェクト名:4-1-2 ソースファイル名: sample4-1-2.c
#include <stdio.h>
int main(void)
{
int score = 75;
if (score >= 60)
{
printf("合格です!\n");
}
return 0;
}このプログラムでは、
- score が 60 以上 → 表示される。
- 60 未満 → 何も起きない。
という流れになります😊
繰り返し:同じ処理を何度も実行🔁
最後が 繰り返し(ループ) です。
これは、
条件が満たされている間、同じ文を繰り返す
という制御構造です。
繰り返しのイメージ
┌───────┐
│ 条件判定 │←┐
└───────┘ │
NO│ ↓YES │
│ ┌──┐ │
│ │ 文 │→─┘
↓ └──┘
YES の間は、
何度も文が実行され続ける のがポイントです😊
繰り返しで使う命令:while
代表的な繰り返し命令が while です。
書式
while (条件)
{
文;
}役割
- 条件が正しい間
- 中の文を繰り返す
繰り返しのサンプル
プロジェクト名:4-1-3 ソースファイル名: sample4-1-3.c
#include <stdio.h>
int main(void)
{
int count = 1;
while (count <= 3)
{
printf("%d 回目の処理です。\n", count);
count = count + 1;
}
return 0;
}このプログラムは、
1️⃣ count が 1 のとき実行
2️⃣ count を増やす
3️⃣ 条件を再チェック
という流れを繰り返します🙂
順次・分岐・繰り返しを整理しよう📋
ここで3つをまとめて整理してみましょう。
| 制御構造 | 何をする? | 代表的な命令 |
|---|---|---|
| 順次 | 上から順に実行 | これまでの文すべて |
| 分岐 | 条件で処理を分ける | if |
| 繰り返し | 条件の間、処理を続ける | while |
この3つを 組み合わせるだけ で、
どんなに複雑なプログラムでも作れます✨
構造化定理ってなに?📘
ここで登場するのが 構造化定理 です。
順次・分岐・繰り返しの3つの制御構造を組み合わせることで、
どんな複雑なプログラムでも作成することが理論上可能である。
つまり、
「難しそうなプログラム」
=「この3つがたくさん組み合わさっているだけ」
なんですね😊
プログラム作りの考え方が変わる✨
ここまで来ると、プログラムを見る目が変わります。
- これは順次だな
- ここで分岐してるな
- ここは繰り返しだな
というように、
流れとして読める ようになります👍
この感覚が身につくと、
一気にプログラミングが楽しくなりますよ🎉
ここまで読めたあなたは、
プログラムの流れを考える入口 に立っています😊
次は、それぞれの制御構造を
実際にどう書くか・どう組み合わせるか を
じっくり学んでいきましょう✨
