C言語の制御構文とは?初心者でもわかるプログラムの流れを制御する基本
生徒
「C言語のプログラムは、上から順に処理が進むと聞きました。でも、ずっとまっすぐ進むだけでは、複雑な処理ができない気がします。」
先生
「その通りです。そこで必要になるのが、プログラムの流れを自由にコントロールするための制御構文です。」
生徒
「制御構文って、どんな役割があるんですか?」
先生
「条件によって処理を分けたり、同じ処理を繰り返したり、人間の会話や作業の流れに近い形で命令を動かせます。」
1. C言語の制御構文とは?
C言語の制御構文は、プログラムの流れを自由に変更するための仕組みです。パソコンは基本的に、プログラムの命令を上から順番に実行します。しかし、それだけでは「条件で処理を変える」「同じ処理を何度も繰り返す」といった、現実的で柔軟な動きができません。そこで登場するのが、条件分岐を行うifやswitch、繰り返し処理を行うforやwhileといった制御構文です。
「信号が青なら渡る、赤なら止まる」のように、条件を判断して処理が変わる仕組みを作るには制御構文が必須です。日常の行動をそのままプログラム化する感覚で理解すると覚えやすいです。
2. if文で条件による分岐を行う
制御構文の中でも、もっともよく使うのがif文です。条件が真なら処理を実行し、偽なら実行しません。たとえば、年齢によって料金が変わるアプリなどで使われます。
#include <stdio.h>
int main(void)
{
int age = 15;
if(age < 18)
{
printf("未成年の料金が適用されます。\n");
}
return 0;
}
未成年の料金が適用されます。
条件には比較演算子(大なり、小なり、等しい)を使えます。複雑な判断が必要な場合は、論理演算子を使って「〇〇かつ□□」「〇〇または□□」といった条件も書けます。
3. if-elseで条件が違うときの処理を追加
elseを使うことで、条件が成立しない場合の処理も書けます。現実でいえば「雨なら傘を持つ、晴れなら帽子をかぶる」のように選択肢を持てます。
#include <stdio.h>
int main(void)
{
int score = 80;
if(score >= 70)
{
printf("合格です。\n");
}
else
{
printf("不合格です。\n");
}
return 0;
}
4. switch文で多くの条件を整理
switch文は、特定の値に応じて処理を分けたいときに使います。ifを並べるよりもスッキリ書けることが多いです。
#include <stdio.h>
int main(void)
{
int signal = 2;
switch(signal)
{
case 1:
printf("青です。\n");
break;
case 2:
printf("黄です。\n");
break;
case 3:
printf("赤です。\n");
break;
default:
printf("不明な信号です。\n");
}
return 0;
}
5. for文で繰り返し処理をする
for文は、「〇回繰り返す」といった場合に向いています。配列の処理や、同じメッセージを表示する時などに便利です。
#include <stdio.h>
int main(void)
{
for(int i = 0; i < 5; i++)
{
printf("こんにちは!\n");
}
return 0;
}
こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!
6. while文で条件が続く限りループ
while文は、条件が成立している間ずっと処理を繰り返します。「合計が100を超えるまで加算する」といった、終わりが条件で変わるケースに役立ちます。
#include <stdio.h>
int main(void)
{
int sum = 0;
while(sum < 100)
{
sum += 20;
printf("%d\n", sum);
}
return 0;
}
7. 授業でよく聞かれる疑問を整理
プログラミング初心者がつまずきやすいポイントは、条件の書き方とループの終わり方です。「なぜ終わらないのか」「なぜ実行されないのか」と悩んだら、条件が正しいか見直すと多く解決します。C言語は正直で、条件が間違っていれば必ず結果に出ます。
制御構文はゲーム、家電、スマホアプリ、Webシステムなどあらゆるプログラムで使われています。逆に言えば、これを理解することでプログラミングが一気に楽しくなります。日常生活のルールや仕組みを言葉ではなく命令に変えるだけなので、慣れるほど自由に作れる世界が広がっていきます。