19.0325

論理演算子(logical 'and', 'or', 'not' operators)

論理演算子(ろんりえんざんし)とは、聞きなれない言葉だと、
思いますが、名前ほどには難しくありません。
要するに、
  かつ を、表すのが、And演算子   &&
  または を、表すのが、Or演算子    ||
  ではない を、表すのが、Not演算子  !
なのですが、
&&(かつ) というのは、
  x && y
の時、
  x が、true かつ y も、true の時に、x && y が、true
に、なるということです。
この、And演算子/&& では、これ以外の場合は、すべて、false になります。
では、このことを、println()関数 を使って確かめてみましょう。
こんなコードを、main()関数 に、書いてみます。
  println(true && true)
  println(true && false)
  println(false && false)
前回も、println()関数 の、()に、Int型を、入れましたが、
Boolean型も、OKです。
というか、何でも、OKですね。
リファレンスに、
  fun println(message: Any?)
とありますが、このページの先の部分で、理解できるように書くつもりですが、
  Any?
と、書いてあるからです。
Any というのは、Kotlin言語 での、すべてのクラスの、継承元で、
? は、null も、ありうるということです。
Any も、null も、この先、学習します。

ちょっと脱線しましたが、先ほどのコードを実行すると、
どうなるか、少し考えてから、実行結果を、見てください。
合っていたら、理解していると思います。
違っていたら、もう一度よく読んでみましょう。

しかし、こんなコードを書いて何の役に立つのかと、
思うかもしれませんね。

それは、次回やる、if文 などで、活躍します。
例えば、
  アンドロイド・スタジオ_3.3対応 && Kotlinコード
の、本であれば、買う、とか。
この場合、どちらか一つでも、条件に合わなければ、
買わない、ということになります。


それでは、今度は、
  Or演算子 / ||
について、見ていきましょう。
これは、And演算子/&& よりも、
すこし、条件が甘くて、
  左の値式が返す値(例えば、3>5 は、falseを返します)
と、
  右の値式が返す値
のうち、
  どちらかが、true
なら、例えば、
  val x: Boolean = true
  val y: Boolean = false
の時、
  x || y は、true
ということです。


最後は、
  Not演算子 / !
です。
これは、true/正しい、false/間違い のそれぞれを、逆転させます。
つまり、
  !true は、false
になり、
  !false は、true
になるということです。

ただ、気を付けることがあります。
「ではない」 からと言って、
  x == !5
これは、間違いです。
これは、あまりいい例ではないかもしれません。
とにかく、
  ! は、true値 と、false値 のみに対して使われる
ということです。
こんな時は、
  x != 5
と、すべきですね。



まとめ
And演算子:
  A /and/&& B が、true なら、true
Or演算子:
  A /or/|| Bが、true なら、true
Not演算子:
  ではない/not/!true → false
  ではない/not/!false → true