C言語の論理演算と条件分岐を完全ガイド!初心者でもわかる実用例付き
生徒
「C言語で条件を組み合わせたり、複数の条件をチェックする方法はありますか?」
先生
「あるよ。C言語では論理演算子を使うことで、条件を組み合わせて判断することができるんだ。」
生徒
「論理演算ってどんなものなんですか?」
先生
「日常でも、二つの条件が両方そろったらOKとか、どちらか一つだけ満たせばOKみたいな場面があるよね。それをプログラムでも同じように扱えるのが論理演算なんだ。」
1. C言語の論理演算とは?
C言語には、複数の条件を組み合わせて判断するための論理演算子が用意されています。プログラミング初心者だと難しそうに聞こえますが、考え方はとても身近なものです。例えば、コンビニでお酒を買うときは「年齢が二十歳以上」かつ「身分証明書がある」という条件を確認されます。こうした条件をプログラムに書くときに論理演算を使います。
論理演算に使う記号は次の三つが基本です。
- AND演算:
&& - OR演算:
|| - NOT演算:
!
どれもC言語でよく使われる演算子で、条件分岐や判定処理、数値チェック、文字チェックなど、あらゆる場面で必要になります。特に初心者が理解しにくいポイントなので、ひとつずつていねいに見ていきましょう。
2. AND演算(&&)とは?
AND演算は「両方の条件が満たされたら真になる」という動きです。日常でも同じ考え方があります。「宿題を終えていて、部屋が片付いているならゲームをしていい」というようなものです。どちらかひとつでもできていなければ許可されません。C言語でも同じように、両方の条件が真のときに処理を進めることができます。
例えば、年齢が二十歳以上で、会員登録が済んでいる場合のみ入場できるイベントがあるとします。その場合のプログラムは次のようになります。
int age = 22;
int member = 1;
if(age >= 20 && member == 1)
{
printf("入場できます。\n");
}
この条件は「年齢が二十歳以上」かつ「memberが1」であるときに真になります。二つの条件がそろっているかどうかを同時に判断できるので、現実のルールに近い形でプログラムを書くことができます。
3. OR演算(||)とは?
OR演算は「どちらかひとつの条件を満たしていれば真になる」演算です。スーパーで割引対象の商品が「赤いシールか黄色いシールがついていればOK」というような場面と同じです。C言語では同じように、二つの条件のどちらかが一致していれば処理を進めることができます。
例えば、ゲームのログインで、メールアドレスか電話番号のどちらかが登録されていれば続行できるとします。その場合は次のように書きます。
int mail = 0;
int phone = 1;
if(mail == 1 || phone == 1)
{
printf("ログインできます。\n");
}
このように、どちらか一方でも真であればif文の中に進むことができます。複数の選択肢を用意するときに便利で、入力チェックや選択式の処理で活用できます。
4. NOT演算(!)とは?
NOT演算は「条件を反転させる」演算です。例えば、「雨ではないなら外で運動できる」という考え方があります。C言語では!を使うことで真と偽を反転させることができ、条件を簡潔に表現できます。
次の例では、ボタンが押されていない場合にメッセージを出力しています。
int pushed = 0;
if(!pushed)
{
printf("ボタンが押されていません。\n");
}
変数が0の場合は偽ですが、NOTをつけることで真に変わります。初心者には少しややこしく感じるかもしれませんが、慣れるととても便利です。
5. 論理演算と条件分岐の実用例
ここからは、論理演算を使った実用的な例を紹介します。今回は、三つの条件を組み合わせた処理を作ってみましょう。「学生である」「試験の点が六十点以上」「欠席が少ない」の三つを満たしたときに合格という判定を行います。
int student = 1;
int score = 75;
int absent = 2;
if(student == 1 && score >= 60 && absent < 5)
{
printf("合格です。\n");
}
else
{
printf("条件を満たしていません。\n");
}
三つすべての条件を満たす必要があるので、AND演算子を並べて使っています。複数の条件があるとif文を何回も書きたくなりますが、論理演算を使えば一行で分かりやすく書くことができます。
実行結果は次のようになります。
合格です。
このように、論理演算は現実の判断と似た形で条件を扱えるため、初心者が混乱しやすい条件分岐をスッキリ書けるというメリットがあります。C言語のプログラムは数値や文字を扱うだけでなく、現実のルールや決まりごとを計算する力を持っているため、論理演算を覚えることでより複雑な処理にも挑戦できます。