Menu
Coddy logo textTech

論理演算子 パート2

CoddyのCジャーニー「Fundamentals」セクションの一部 — レッスン 22/63。

論理演算子には、論理演算子の組み合わせが何を返すかを示す「真理値表」と呼ばれる特別な表があります。

and (&&) 演算子の真理値表:

aba && b
000
010
100
111

and (&&) 演算子で 1 (真) を得る唯一の方法は、ab の両方が 1 (真) である場合です。

or (||) 演算子の真理値表:

aba || b
000
011
101
111

この場合、1 (true) という結果を得るには、a または b のいずれかが 1 (true) である必要があります。

not (!) 演算子の真理値表:

a!a
01
10

ここで、a の値が反転されます。もし a0 (偽) であれば、!a1 (真) になります。

challenge icon

チャレンジ

簡単

int b3 = !((b1 + b2) > (b1 * b2)); において、b3 が 1 (true) と評価されるように、変数 b1 と b2 に整数値を代入する必要があります。

条件を分析し、どのような値がそれを真にするか考えてみてください。

チートシート

真理値表は、論理演算子の結果を示します:

AND (&&) 演算子:

aba && b
000
010
100
111

両方のオペランドが 1 (true) の場合にのみ 1 (true) を返します。

OR (||) 演算子:

aba || b
000
011
101
111

いずれかのオペランドが 1 (true) の場合に 1 (true) を返します。

NOT (!) 演算子:

a!a
01
10

値を反転させます:0 (false) は 1 (true) になり、その逆も同様です。

自分で試してみよう

#include <stdio.h>

int main() {
    // 以下にコードを入力してください
    int b1 = ?;
    int b2 = ?;
    int b3 = !((b1 + b2) > (b1 * b2));
    
    // 下の行は変更しないでください
    printf("b3 = %d\n", b3);
    
    return 0;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン