広告スペース

第10回 比較・論理演算子

C言語の比較演算子(==, !=, <, >)と論理演算子(&&, ||, !)を解説。

比較演算子 ― 結果は真(1)か偽(0)

比較の結果は1(真)または0(偽)という整数値になります。
演算子意味a=3, b=5 の結果
a == b等しい0 (偽)
a != b等しくない1 (真)
a > b大きい0 (偽)
a >= b以上0 (偽)
a < b小さい1 (真)
a <= b以下1 (真)
試してみよう:
結果

論理演算子 ― 複数の条件を組み合わせる

演算子意味読み方
A && BAかつB (両方真)かつ/ANDage >= 18 && age < 65
A || BAまたはB (どちらか真)または/ORday == 0 || day == 6
!AAでない否定/NOT!finished

真理値表

AND (&&)

ABA && B

OR (||)

ABA || B

=== の違い ― 超重要!

よくあるバグ: if (a = 10) と書いてしまう(==のつもり)。これは「aに10を代入してからその値(10)を条件として使う」となり、常に真になってしまいます。
// ✘ バグの例
if (a = 10) {  // = は代入! aは10になり、条件は常に真
  printf("いつも実行される\n");
}

// ✔ 正しい書き方
if (a == 10) {  // == は比較。aが10のときだけ真
  printf("aは10です\n");
}
覚え方: == は「等しいかチェック」、= は「入れる」。

三項演算子 (? :)

三項演算子は、if-else を1行で書ける条件式です。
書き方: 条件 ? 真のときの値 : 偽のときの値
// if-else で書く場合
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

// 三項演算子で1行
int max = (a > b) ? a : b;
よく使うパターン:
用途コード例意味
2値の大きい方(a > b) ? a : ba が大きければ a、そうでなければ b
絶対値(x >= 0) ? x : -xx が正ならそのまま、負なら符号反転
偶数/奇数の表示(n%2==0) ? "偶数" : "奇数"printfの引数に直接使える
0除算の防止(b != 0) ? a/b : 0bが0でなければ割り算、0なら0
使いどころ: 単純な2択の代入や printf の引数に便利。複雑な処理には if-else を使う方が読みやすいです。
ネストは避ける: (a>b) ? ((a>c)?a:c) : ((b>c)?b:c) のような入れ子は読みにくいので、if-else で書きましょう。

自分で書いてみよう ― 比較・論理

cmp.c
出力
「実行」を押してください...
広告スペース

関連する講座

条件分岐編
第11回 条件分岐(if文)
C言語のif文の書き方。条件分岐をフローチャートで視覚的に理解。
演算子編
第9回 代入・インクリメント
C言語の代入演算子とインクリメント(++)・デクリメント(--)を解説。
演算子編
第7回 算術演算子
C言語の算術演算子(+, -, *, /, %)を図解で解説。整数除算の注意点も。
← 前の講座
第9回 代入・インクリメント
次の講座 →
第11回 条件分岐(if文)

確認クイズ

この講座の理解度をチェックしましょう!

Q1. C言語で「等しい」を表す比較演算子は?

=
==
===

= は代入演算子、== が比較(等価)演算子です。=== はC言語には存在しません(JavaScriptの演算子です)。

Q2. !(1 && 0) の結果は?

0(偽)
1(真)
エラー

1 && 0 = 0(偽)、その否定 !0 = 1(真)です。

Q3. 5 > 3 && 2 > 4 の結果は?

1(真)
0(偽)
エラー

5 > 3 は真(1)、2 > 4 は偽(0)。&& は両方真の時だけ真なので、1 && 0 = 0(偽)です。

この記事をシェア
X(Twitter)でシェア Facebookでシェア LINEで送る はてブ

この講座の理解を深めるおすすめ書籍

サイトで動きを理解し、書籍で演習量を補うと効果的です

📘
苦しんで覚えるC言語
MMGames 著
初心者向けの定番入門書。丁寧な解説で基礎を固められます。
Amazonで見る
📗
新・明解C言語 入門編
柴田望洋 著
図解が豊富で、演習問題も充実。大学の教科書としても採用多数。
Amazonで見る
📙
プログラミング言語C 第2版
B.W.カーニハン, D.M.リッチー 著
通称K&R。C言語の原典。基礎を終えた後のステップアップに最適。
Amazonで見る

※ 上記リンクはアフィリエイトリンクです。購入によりサイト運営を支援いただけます。