C言語入門|条件分岐を体験する:if 文で行動を変える仕組みを学ぶ

ここからは、プログラムに同じ処理を何度も実行させる方法を学んでいきます😊

これまでに学んできたプログラムは、

  • 上から順番に処理する(順次)
  • 条件によって処理を変える(分岐)

といった流れが中心でした。

しかし実際のプログラムでは、

  • 条件が続く間、同じ処理を繰り返したい。
  • ある状態が終わるまで待ち続けたい。

といった場面がとても多く登場します💡
そこで活躍するのが 繰り返し処理(ループ) です。

日常生活にある「繰り返し」📚

今回は、次のような日常の行動を考えてみましょう。

テスト前なので、
制限時間が残っている間は、
問題を解き続ける。

この行動も、立派な 繰り返し処理 です😊

ポイントを整理すると、こうなります。

要素内容
条件制限時間が残っているか
条件が成立している間問題を解く
条件が成立しなくなったら勉強を終了する

「~の間は、同じ行動を続ける」
これが while 文の考え方そのもの なんです✨

繰り返しをフローチャートで考える🔁

この行動をフローチャートで表すと、次のようになります。

条件をチェックし、
YES の間は「問題を解く」を何度も繰り返し、
NO になったら処理を終えます。

while 文は、
この判断と繰り返しをそのままコードにした命令 です😊

while 文で繰り返しを書いてみよう💻

では、この「勉強する行動」を
C言語のプログラムで表してみましょう。

サンプルプログラム

プロジェクト名:4-3-1 ソースファイル名: sample4-3-1.c

#include <stdio.h>
#include <stdbool.h>

int main(void)
{
    bool timeLeft = true;

    while (timeLeft == true) {
        printf("問題を解いています\n");
    }

    return 0;
}

実行結果の例

timeLeft が true の場合

問題を解いています
問題を解いています
問題を解いています
(同じ表示がずっと続く)

timeLeft が false の場合

(何も表示されない)

このように、条件が true のままだと
処理は何度も繰り返され続けます⚠️

実行を止めたい場合は、
Ctrl + C キーでプログラムを強制終了してください。

while 文はどんな命令?🤔

while は英語で、

👉 「~の間は」

という意味を持っています。

while 文の基本形

while (繰り返しを続ける条件) {
    繰り返し実行する処理
}

日本語にすると、こう読めます👇

条件が成立している間は
→ この処理を何度でも繰り返す

とても素直な命令ですね😊

条件はいつチェックされるの?⏱️

while 文では、次の順番で処理が行われます。

  1. 条件をチェック
  2. true なら処理を実行
  3. 再び条件をチェック
条件の結果動作
true中の処理を実行して、また条件判定へ
false繰り返しを終了

最初の条件判定で false だった場合は、
1回も処理が実行されない ことも覚えておきましょう💡

なぜ無限に繰り返されるの?🔄

先ほどの例では、

bool timeLeft = true;

となっており、
プログラムの途中で timeLeft を false にしていません。

そのため、

  • 条件がずっと true
  • while が終わらない

という 無限ループ が発生します😅

実際のプログラムでは、

  • カウンタを減らす
  • 条件を変化させる

といった処理を入れて、
いつか false になるように設計 します。

while 文は「終わるまで任せる係」🧑‍💼

while 文は、

  • 同じ処理を
  • 条件が続く限り
  • 自動で何度も

実行してくれる便利な仕組みです😊

人にたとえるなら、

「時間が残っている間は、問題を解き続けてね」

と指示しているようなものですね✨

順次・分岐・繰り返しがそろった🎉

これで、

  • 順次
  • 分岐(if)
  • 繰り返し(while)

という プログラムの三大構造 がそろいました。

この3つを組み合わせるだけで、
どんなに複雑な処理も作れるようになります💪

もし次に

  • カウンタ付き while
  • 無限ループを安全に止める方法
  • for 文との違い

につなげたい場合も、すぐ対応できますよ✨