論理演算子

if文などの条件式で条件と条件を繋げたり、条件を否定する条件にしたりする時、論理演算子を使う・・・。

論理和(OR)の演算子("||")を使って、

A || B

は「AまたはB」というような意味・・・。
どちらかが満たされていればいい・・・。

aが10より大きい、またはbが20より大きい場合は、"(a > 10 || b > 20) is TRUE."と出力・・・。
そうでなければ、"(a > 10 || b > 20) is FALSE."と出力する・・・。

$ ./logical_operator
a: 5
b: 10
(a > 10 || b > 20) is FALSE.
$ ./logical_operator
a: 15
b: 10
(a > 10 || b > 20) is TRUE.
$ ./logical_operator
a: 5
b: 25
(a > 10 || b > 20) is TRUE.
$ ./logical_operator
a: 15
b: 25
(a > 10 || b > 20) is TRUE.
$

一番上以外は、どちらかを満たしているので、TRUEとなる・・・。

論理積(AND)の演算子("&&")を使って、

A && B

は「AかつB」というような意味・・・。
どちらも満たされていなければならない・・・。

cが10より大きい、かつdが20より大きい場合は、"(c > 10 && d > 20) is TRUE."と出力・・・。
そうでなければ、"(c > 10 && d > 20) is FALSE."と出力する・・・。

c: 5
d: 10
(c > 10 && d > 20) is FALSE.

.
.
.

c: 15
d: 10
(c > 10 && d > 20) is FALSE.

.
.
.

c: 5
d: 25
(c > 10 && d > 20) is FALSE.

.
.
.

c: 15
d: 25
(c > 10 && d > 20) is TRUE.

一番下のみ満たしているのでTRUE・・・。

否定(NOT)の演算子("!")を使って、

!A

は「Aではない」というような意味・・・。
Aが満たさなければいい・・・。

eが10より大きくない(つまりeが10以下)なら、"(!(e > 10)) is TRUE."と出力・・・。
そうでないなら、"(!(e > 10)) is FALSE."と出力・・・。

e: 15
(!(e > 10)) is FALSE.

.
.
.

e: 5
(!(e > 10)) is TRUE.

.
.
.

e: 10
(!(e > 10)) is TRUE.

一番上はFALSE、それ以外はTRUE・・・。

Sample/logical_operator.c at master · bg1bgst333/Sample · GitHub