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つがたくさん組み合わさっているだけ」

なんですね😊

プログラム作りの考え方が変わる✨

ここまで来ると、プログラムを見る目が変わります。

  • これは順次だな
  • ここで分岐してるな
  • ここは繰り返しだな

というように、
流れとして読める ようになります👍

この感覚が身につくと、
一気にプログラミングが楽しくなりますよ🎉

ここまで読めたあなたは、
プログラムの流れを考える入口 に立っています😊

次は、それぞれの制御構造を
実際にどう書くか・どう組み合わせるか
じっくり学んでいきましょう✨