C言語入門|制御構文を理解する:条件式とブロックの基本

if 文や while 文って、役割はぜんぜん違うのに、
なんだか書き方が似ていると思いませんか?🤔

if (条件) {
    処理
}

while (条件) {
    処理
}

「条件があって、そのあとに { } がある」
この共通点に気づけたなら、とても良い感覚です👍

実はこの正体こそが、制御構文の基本構造なんです。

制御構文ってなに?🎮

C言語では、

  • 条件によって処理を変えたい(分岐)
  • 条件が続く間、処理を繰り返したい(繰り返し)

といった プログラムの流れをコントロールする文
まとめて 制御構文 と呼びます。

代表的な制御構文が、これまで学んできた次の2つです😊

制御構文役割
if 文条件によって処理を分ける。
while 文条件が成立している間、処理を繰り返す。

役割は違っても、
中身の作りはまったく同じルールでできています。

制御構文は2つの要素でできている🧩

制御構文は、次の2つの部品から成り立っています。

要素役割
条件式処理を実行するかどうかを判断する式
ブロック条件に応じて実行される文の集まり

この2つを理解できれば、
制御構文は一気にわかりやすくなります

if 文と while 文を見比べてみよう👀

分岐の構文(if 文)

if (条件式) {
    条件が成立したときの処理
} else {
    条件が成立しなかったときの処理
}

繰り返しの構文(while 文)

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

どちらも、

  1. ( )の中に 条件式
  2. { } の中に ブロック

という構造になっていますね😊

つまり制御構文とは、

条件を評価して
→ その結果に応じて
→ ある処理のかたまりを実行する仕組み

だと考えるとスッと理解できます👍

条件式ってなに?🤔

条件式とは、
true(真)か false(偽)を判断できる式 のことです。

たとえば、こんな式が条件式になります。

age >= 18
score == 100
count < 10
flag == true

条件式の結果が、

結果意味
true条件が成立している。
false条件が成立していない。

if 文では「どちらの処理を実行するか」を決め、
while 文では「繰り返しを続けるか」を決めます。

ブロックってなに?📦

ブロックは、
複数の文をひとまとめにした処理のかたまり です。

{
    文1;
    文2;
    文3;
}

制御構文では、このブロック全体を
「条件が成立したときに実行する処理」
として扱います😊

ルール① 波カッコは省略できる…けど⚠️

ブロックの中が 1行だけ の場合、
波カッコ { } を省略することもできます。

if (tenki == true)
    printf("掃除をします\n");

これは文法的には正しいです👌

しかし、次のコードを見てください。

if (tenki == true)
    printf("掃除をします\n");
    printf("犬の散歩に行きます\n");

一見すると、

  • 掃除をします
  • 犬の散歩に行きます

が両方 if の中に見えますよね?😅

でも実際は、

  • if の対象 → 1行目だけ
  • 2行目は無条件で実行

という、とても危険な状態です⚠️

そのため 実務では波カッコを省略しない のが基本ルールです。

if (tenki == true) {
    printf("洗濯をします\n");
    printf("散歩に行きます\n");
}

ミスを防ぐためにも、
必ず { } を書くクセを付けておきましょう💪

ルール② ブロック内の変数の寿命⏳

ブロックの中では、新しい変数を宣言できます。

while (count < 10) {
    int b;
}

しかし、この変数 b は
このブロックの中でしか使えません

ブロックの外で使おうとすると…

printf("%d\n", b);  // コンパイルエラー!

「宣言されていない変数です」という
エラーが発生します😵

このように、

変数が使える範囲

のことを スコープ(scope) と呼びます。

スコープはブロックで区切られる📏

int a;

while (条件式) {
    int b;
}
変数使える場所
aプログラム全体
bwhile のブロック内だけ

ブロックを抜けた瞬間、
その中で宣言された変数は 消滅 します👻

「宣言したはずなのに undeclared エラーが出る…」
そんなときは、まず スコープ を疑いましょう😊

制御構文を使いこなす第一歩🚀

制御構文は難しそうに見えますが、
本質はとてもシンプルです。

  • 条件式で判断する。
  • ブロックで処理をまとめる。

この2つさえ押さえれば、
if 文も while 文も自然に使えるようになります✨

次は、この中でも特に重要な
ブロックの書き方と注意点
さらに詳しく見ていきましょう!