論理演算

ここでは、真偽値(論理値)の演算である、論理演算を行う方法を扱います。

- 目次 -

論理演算子

複数の比較演算結果などの真偽値(論理値)が、同時に成立しているかなどを調べるためには、論理演算子を使用します。

VCSSLでは、以下のような論理演算子をサポートしています。

記号 意味 扱える型 詳細
 && 論理積
AND
(かつ)
bool 右の値と左の値が、ともにtrueである場合のみ、結果がtrueとなります。どちらか一方がfalseなら、結果はfalseとなります。
 || 論理和
OR
(または)
bool 右の値と左の値のうち、どちらか一方がtrueなら、結果はtrueとなります。右の値と左の値が、ともにfalseである場合のみ、結果がfalseとなります。
 ! 否定
NOT
(でない)
bool 右側の値がtrueなら、結果はfalseとなります。また、右側の値がfalseなら、結果はtrueとなります。

2つの比較結果を調べる

それでは、実際に2 つの比較結果を調べてみましょう:

TrueAndTrue.vcssl

- 実行結果 -

true

これを実行すると true が表示されます。 b1 と b2 はともにtrue なので、 b1 && b2 もtrueとなったのです。

それでは、以下のようにするとどうでしょうか:

TrueAndFalse.vcssl

- 実行結果 -

false

今度は false が表示されます。 b1は true でしたが、b2は false だったので、 b1 && b2 はfalseとなったのです。このように「&&」演算を用いると、 複数の比較結果が、共に成立している場合のみ、trueを得る事ができます。

比較と論理演算の混合

複数の比較結果を、論理演算で判断するような処理は、プログラミングにおいて頻繁に登場します。 そのたびにbool型変数をいくつも用意するのは大変です。

そこで、以下のように混合記述する事も可能です:

CompAndLogic.vcssl

- 実行結果 -

true

これを実行すると true が表示されます。

複数の論理演算の混合

複数の論理演算を組み合わせて処理するには、以下のように( )を用いて区切る必要があります:

LogicAndLogic.vcssl

- 実行結果 -

true

これは ( true && true ) || ( false && false )|| false 、つまり true || false || false の演算となるので、実行するとtrue が表示されます。

否定

比較結果の間逆を求めたい場合があるかもしれません。そのような場合には、否定の記号「!」を使用します:

Not.vcssl

- 実行結果 -

false

これを実行すると false が表示されます。