C言語のif文の使い方を完全ガイド!初心者でもわかる乱数生成
生徒
「C言語で条件によって処理を分けたいんですけど、どうすれば良いですか?」
先生
「C言語にはif文やswitch文という、条件によって動作を変える制御構文があります。」
生徒
「制御構文って難しそうですけど、どんな感じで使うんですか?」
先生
「身近な例で考えるとわかりやすいですよ。では順番に説明していきましょう。」
1. if文とは?
C言語のif文は、条件に応じて処理を変えるための基本構文です。日常生活でも「もし雨なら傘を持つ」「もし暑いなら水分を飲む」というように、条件によって行動が変わります。プログラムでも同じ考え方で、条件に一致したときだけ特定の処理を実行できます。初心者が最初につまずく部分ですが、考え方はとても単純です。条件式が「真」なら中の処理が実行され、「偽」なら実行されません。
int a = 10;
if(a > 0)
{
printf("aは正の数です\n");
}
この例では変数aが0より大きいときだけメッセージが表示されます。条件式は大きい、小さい、同じなどの比較演算子を使って書きます。プログラミングでは数値だけでなく、文字や計算結果を使った条件判断もできます。
2. elseとelse ifを使った分岐
if文は条件が1つだけとは限りません。「雨なら傘」「晴れなら帽子」「雪なら手袋」というように、たくさんの条件に分かれることがあります。そんなときに使うのがelseとelse ifです。
int temp = 15;
if(temp >= 30)
{
printf("とても暑いです\n");
}
else if(temp >= 10)
{
printf("すこし寒いです\n");
}
else
{
printf("とても寒いです\n");
}
上から順に条件を確認し、最初に一致したものだけが実行されます。どの条件にも当てはまらない場合は、最後のelseが実行されます。このように複数の条件を順番に判定できるので、ゲームプログラムやアプリの判断処理でよく使われます。
3. switch文とは?
C言語を学習していくと、決まった数字や文字によって処理を切り替えたい場面が出てきます。例えば「1ならゲーム開始」「2なら設定」「3なら終了」というようなメニュー処理です。そのときに便利なのがswitch文です。switchはifをたくさん並べるよりも読みやすく、分岐が多い場合にきれいに書ける構文です。
int select = 2;
switch(select)
{
case 1:
printf("ゲーム開始\n");
break;
case 2:
printf("設定画面\n");
break;
case 3:
printf("終了します\n");
break;
default:
printf("無効な入力です\n");
break;
}
caseは選択肢を表し、breakがないと次の処理まで実行されてしまうため、とても重要です。初心者がよく忘れる部分なので、switch文を書くときは常に意識してください。またどれにも一致しなかった場合にdefaultが実行されます。
4. ランダムな数字で条件分岐
if文やswitch文の練習として、ランダムな数字を使ったプログラムはとても人気があります。乱数を使うことで、毎回結果が変わる楽しいプログラムが作れます。簡単な例として、0〜9の数字をランダムに取り出し、それが偶数か奇数か判定してみましょう。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
int r = rand() % 10;
if(r % 2 == 0)
{
printf("偶数:%d\n", r);
}
else
{
printf("奇数:%d\n", r);
}
return 0;
}
ランダムな数字が出て、その数字を判定して結果を表示します。このように条件文が使えるとプログラムの動きが一気に表現豊かになります。
5. switchで乱数の結果を使う
次に、乱数を使ってじゃんけんのような処理を作ることもできます。0ならグー、1ならチョキ、2ならパー、というように決まった番号を条件にして分岐します。switch文と相性が良く、読みやすいプログラムになります。
int hand = rand() % 3;
switch(hand)
{
case 0: printf("グー\n"); break;
case 1: printf("チョキ\n"); break;
case 2: printf("パー\n"); break;
default: break;
}
ゲームやシミュレーションの処理に使われることが多く、switch文に慣れる良い練習になります。
6. ifとswitchの使い分け
どの場面でif文を使い、どの場面でswitch文を使うのかは初心者が悩むポイントです。ifは複雑な条件や大小の比較がある場合に便利です。switchは決まった値を分類したいときに向いています。例えば「数値が大きいか小さいか」を調べるならif、「1、2、3のどれか」を選ぶならswitchが適しています。読みやすいコードを書くことはC言語だけでなくプログラミング全体で重要な技術になります。
まとめ
if文とswitch文で「条件分岐」の考え方を身につける
この記事では、C言語における条件分岐の基本として、if文、else、else if、そしてswitch文の使い方を、乱数生成と組み合わせながら学んできました。条件分岐は、プログラムに「判断」をさせるための重要な仕組みです。人が日常生活で行っている「もし〜なら」という考え方を、そのままコードに落とし込むことで、プログラムは状況に応じた動きをできるようになります。
if文は、条件が成り立つかどうかを判定し、その結果によって処理を実行するかどうかを決めます。条件が一つだけの単純な判断から、else ifを使った複数条件の分岐まで対応できるため、非常に柔軟です。数値の大小比較や計算結果による判断、乱数の結果を使った分岐など、幅広い場面で活躍します。初心者にとって最初の壁になりやすい部分ですが、一度理解すると多くのプログラムに応用できます。
switch文と乱数の組み合わせで処理を整理する
switch文は、決まった値によって処理を分けたいときにとても便利な構文です。if文を何個も並べるよりも、選択肢がはっきりしている場合は、switch文のほうが読みやすく、間違いも減らせます。特に、乱数と組み合わせることで、ゲームやシミュレーションのような動きのあるプログラムを簡単に作れるようになります。
乱数生成は、毎回同じ結果にならないプログラムを作るための大切な要素です。if文やswitch文と一緒に使うことで、「ランダムな結果を判断して処理を変える」という、実践的なプログラミングの考え方を学べます。偶数か奇数かを判定したり、じゃんけんの手を決めたりする例は、初心者にとって理解しやすく、楽しみながら学習できる題材です。
まとめとしての簡単なサンプルプログラム
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
int num = rand() % 5;
if(num == 0)
{
printf("大当たり\n");
}
else if(num <= 2)
{
printf("あたり\n");
}
else
{
printf("はずれ\n");
}
return 0;
}
このサンプルでは、乱数によって結果を分ける簡単な判定を行っています。数値の範囲によって結果を変えることで、if文とelse ifの基本的な使い方を復習できます。このような処理は、ゲームの判定や抽選プログラムなど、さまざまな場面で使われています。
条件分岐を理解するとプログラムが一気に楽しくなる
条件分岐を理解できるようになると、C言語のプログラムは単なる計算の集まりではなく、「考えて動く仕組み」に変わります。入力や乱数の結果によって動きが変わることで、プログラムを書く楽しさも大きく広がります。最初は小さな例からで構いませんので、条件を一つずつ試しながら、if文やswitch文の動きを確認していくことが大切です。
if文とswitch文の使い分けを意識できるようになると、コードの読みやすさも向上します。自分が後から見返したときや、他の人が読んだときに理解しやすいプログラムを書くことは、プログラミング学習においてとても重要なポイントです。
生徒:「if文って難しそうでしたけど、日常の『もし〜なら』と同じだと分かってきました」
先生:「その気づきは大切ですね。条件分岐は考え方が分かれば怖くありません」
生徒:「乱数を使うと、毎回結果が変わって面白いです」
先生:「そうですね。条件分岐と乱数は、プログラムを生き生きさせてくれます」
生徒:「switch文も、選択肢が多いときに便利だと感じました」
先生:「その通りです。場面に応じてifとswitchを使い分けていきましょう」
生徒:「これから自分でも、条件分岐を使ったプログラムを作ってみます」
先生:「ぜひ挑戦してください。条件分岐が使えるようになると、C言語の世界が一気に広がりますよ」