
C言語入門|条件式の仕組みを理解する:真偽の評価と関係演算子の基本
if 文や while 文を使っていると、必ず目にするのが
( )の中に書かれた 条件式 ですよね🙂
if ( 条件式 ) {
処理
}この条件式、
「なんとなく書いてはいるけど、正体はよく分かっていない」
という人も多いのではないでしょうか?
でも大丈夫です👍
条件式の仕組みはシンプルで、
真(true)か偽(false)かを判断するだけ なんです。

条件式とは何をするもの?🤔
条件式とは、
処理を実行するかどうかを決めるための式 です。
たとえば、次のような条件を考えてみましょう。
もし、所持金が 1000 円以上なら、ジュースを買う
そうでなければ、何も買わない
この「1000円以上かどうか」という判断部分が、
プログラムでは 条件式 になります。
条件式を使ったサンプルプログラム🍹
では、この日常の判断を C 言語で表してみましょう。
プロジェクト名:4-5-1 ソースファイル名: sample4-5-1.c
#include <stdio.h>
#include <stdbool.h>
int main(void)
{
int money = 1200;
if (money >= 1000) {
printf("ジュースを買いました\n");
} else {
printf("お金が足りませんでした\n");
}
return 0;
}実行結果(money が 1200 の場合)
ジュースを買いましたmoney を 500 に変更した場合
お金が足りませんでしたこのように、
条件式の結果によって実行される処理が切り替わる
これが条件分岐の基本です😊
関係演算子に注目しよう🔍
条件式の中にある
money >= 1000ここで使われている
>= や == といった記号を 関係演算子 と呼びます。
関係演算子は、
左と右の値を比較して、結果を true または false に変換 します。
代表的な関係演算子を表で整理してみましょう。
| 演算子 | 意味 |
|---|---|
| == | 等しい |
| != | 等しくない |
| < | 小さい |
| > | 大きい |
| <= | 以下 |
| >= | 以上 |
条件式は「評価」されて真偽に化ける🧠
第3章で学んだことを思い出してください✨
演算子は評価されて、結果に 置き換わる のでしたね。
3 + 5 → 8同じように、条件式も評価されます。
money >= 1000この式は、
- money が 1200 → true
- money が 500 → false
というように、
最終的には true か false に変わります。
if 文の正体は、実はこんな形です👇
if (true) {
処理を実行
}または
if (false) {
処理を実行しない
}とても単純ですね😊
「等しい」は = ではなく == ⚠️
初心者がよくやってしまうミスがこちらです。
if (money = 1000) // 間違いこれは「比較」ではなく
代入 になってしまいます💦
正しくは、
if (money == 1000) // 正解条件式で使うイコールは
必ず 2 つ並べる(==)
これをしっかり覚えておきましょう👍
bool 型で条件を書くと読みやすい😊
条件式は、必ずしも比較演算子を書く必要はありません。
次のような bool 型の変数を使った条件式もあります。
bool hasTicket = true;
if (hasTicket) {
printf("入場できます\n");
}これは、
もしチケットを持っているなら
という意味になります🎫
条件式の正体が「真か偽か」だと理解していれば、
この書き方も自然に読めますね。
bool 型でない条件式も存在する😲
C言語では、次のような書き方も許されています。
int count = 5;
if (count) {
printf("データが存在します\n");
}この場合、C言語では次のルールで判断されます。
| 値 | 解釈 |
|---|---|
| 0 | false |
| 0以外 | true |
つまり、
if (count)は、
if (count != 0)と同じ意味になります。
初心者へのおすすめルール✨
歴史的な理由でこの書き方は残っていますが、
初心者のうちは、
if (count != 0)
if (isReady == true)のように、
意味がはっきり分かる条件式を書く のがおすすめです😊
まとめ:条件式は判断を作る式🎯
条件式のポイントは次の3つです。
- 条件式は評価される。
- 結果は true か false
- if や while は、その結果で動きを決める。
この考え方を身につければ、
条件分岐や繰り返し処理が グッと分かりやすく なります✨
