3 論理演算子

3.1 論理積

論理積の演算は、演算子(&&)を挟んだ被演算子が両方とも1(真)の 場合、1(真)となる。このことから、この演算子は、日本語で「かつ」と呼ば れることも多い。これは、表5に示す、この演算子の演算規則 を見ても明らかなように、0と1の積の演算と同じである。このことから論理積 と言われる。

使い方は、先に示したように、

a < b && b < c
のように、演算子の左右に式を書く。もちろん式でなくて、値を書いても良い。

0と1以外の値を書いた場合どうなるか?。C言語の規則では、0以外の場合は、 全て真として取り扱われる。即ち

a = 1 && 5
b = -5 && 20.5
の場合、a=1, b=1となる。5や-5、20.5も真として取り扱われる。これは、以 降の論理和でも論理否定でも同じである。
表 5: 論理積
a b a && b
0(偽) 0(偽) 0(偽)
0(偽) 1(真) 0(偽)
1(真) 0(偽) 0(偽)
1(真) 1(真) 1(真)

3.1.1 論理和

論理和の演算は、演算子(||)を挟んだ被演算子の少なくとも一方が1 (真)の場合、1(真)となる。このことから、この演算子は、日本語で「または」 と呼ばれることも多い。これは、表6に示す、この演算子の演 算規則を見ても明らかなように、0と1の和の演算と同じである3。このことから 論理和と言われる。

使い方は、論理積と同様に、

a < b || b < c
と、演算子の左右に式を書く。もちろん式でなくて、値を書いても良い。

これも、0と1以外の値を書くことができる。論理積同様、0以外の場合は、 全て真として取り扱われる。

表 6: 論理和
a b a || b
0(偽) 0(偽) 0(偽)
0(偽) 1(真) 1(真)
1(真) 0(偽) 1(真)
1(真) 1(真) 1(真)

3.1.2 論理否定

論理否定の演算は、演算子(!)の後ろに書く被演算子の値が0(偽)の場 合、1(真)となる。一方、被演算子の値が1(真)の場合、0(偽)となる。 このことを、表7に示す。

使い方は、

!(a < b)
のように、演算子の後に被演算子を書く。

これも、0と1以外の値を書くことができる。論理積同様、0以外の場合は、 全て真として取り扱われる。

表 7: 論理否定
a !a
0(偽) 1(真)
1(真) 0(偽)


ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成16年9月7日


no counter