Boolean Expressions/ja

From Free Pascal wiki
Jump to: navigation, search

English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

3B - ブール演算式 (著者: Tao Yue, 状態: 原文のまま修正なし)

ブール 演算式は2つの値を比較するために利用され、 true あるいは false の答えをもたらす。

value1 関係演算子 value2

以下の関係演算子が利用される。

<	未満
>	超過
=	等しい
<=	以下
>=	以上
<>	等しくない

ブール変数に対してはブール演算子を指定することができる。ここでは some_bool に対して true 式を割り当てている。

some_bool := 3 < 5;

ブール操作を利用することで複雑なブール式を作ることができる。

not	否定 (negation) (~)
and	結合 (conjunction) (^)
or	選言 (disjunction) (v)
xor	排他 (exclusive-or)

NOT は単一演算子である。それは単一の値にのみ適用でき、その値を逆転させる。

  • not true = false
  • not false = true

AND は両方の値が TRUE であるときのみ TRUE になる。

  • TRUE and FALSE = FALSE
  • TRUE and TRUE = TRUE

OR は少なくとも1つの値が TRUE であるときに TRUE になる。

  • TRUE or TRUE = TRUE
  • TRUE or FALSE = TRUE
  • FALSE or TRUE = TRUE
  • FALSE or FALSE = FALSE

XOR は1つの式が TRUE でもう一方の式が FALSE である時に TRUE となる。

  • TRUE xor TRUE = FALSE
  • TRUE xor FALSE = TRUE
  • FALSE xor TRUE = TRUE
  • FALSE xor FALSE = FALSE

2つのブール式を関係演算子とブール演算子を用いて結合するときにはカッコの使い方に注意しなければならない。

(3>5) or (650<1)

その理由はブール演算子は関係演算子よりも演算の順序が上であるためである。

  1. not
  2. * / div mod and
  3. + - or
  4. < > <= >= = <>

従って 3 > 5 or 650 < 13 > (5 or 650) < 1 のように評価される。これは意味をなさない。なぜなら、ブール演算子 or はブール値のみに働き、整数には機能しないからである。

ブール演算子 (AND, OR, NOT, XOR) はブール式で簡単に利用できたように、ブール変数に利用できる。

できる限り、2つの実数を等号で比較することは避けなさい。小さな丸め誤差が2つの等価式が異なる原因になってしまうかもしれないからである。

previous contents next