0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】基本的な型の紹介〜Bool型〜

Last updated at Posted at 2020-11-30

Bool型とは

Bool型とは真理値のことで、ある命題が真であるか偽であるかを表す値です。
つまり、式が型推論されない場合はBool型の値であるtrueかfalseを返します。


let a = true   // Bool型
let b = false   // Bool型
let c: Bool
c = 10 == 10   // true

論理演算

論理演算とは真理値に対する演算になります。
Bool型には、否定・論理積・論理和の3つの論理演算子が用意されています。

論理演算をうまく使うことにより様々な条件式を記載することが可能です。

・ 否定

否定は、真理値を逆にする論理演算です。
Bool型の値の否定を求めるには、!演算子を利用します。

否定したい変数や定数に!をつけることにより、逆の真理値を導くことが可能になります。


let a = true   // true
let b = !a   // false

・ 論理積

論理積とは、与えられた複数の真理値全てが真であれば真となる論理演算子です。

2つ以上の真理値の論理積を求める場合には&&を使用します。
&& は、〜かつ〜 の、かつの部分だと思ってください。

true && true の場合は全ての真理値が true なので結果も true になります。
しかし、true && false の場合は全ての真理値が true ではないので結果は false になります。

国語のテストで、点数が50点を超えているかどうか調べる際に論理積を使うとこうなります。
たろう:100点、あやか:60点、まこと:10点の場合。


let tarou = 100   // たろうは100点
let ayaka = 60   // あやかは60点
let makoto = 10   // まことは10点

var result: Bool   // Bool型

//たろうの点数が50点以上 &&(かつ) あやかの点数が50点以上 -> true && true
result = tarou >= 50 && ayaka >= 50   // true
//太郎の点数が50点以上 &&(かつ) まことの点数が50点以上 -> true && false 
result = tarou >= 50 && makoto >= 50   //false
//三人のテストの結果が50点以上 -> true && true && false
result = tarou >= 50 && ayaka >= 50 && makoto >= 50   //false

少しわかりにくいですかね・・・?(笑)

とにかく論理積を使っていた場合、
一つでもfalseが存在したら結果はfalseになるということです!

・ 論理和

論理和とは、与えられた真理値の少なくともどれか一つが真であれば、結果も真となる論理演算です。

2つ以上の真理値の論理積を求める場合には||を使用します。
|| は、〜または〜 の、またはの部分だと思ってください。

true || true の場合は、どちらもtrueなので、結果はtrueになります。
true || false の場合は、片方がtrueなので、結果はtrueになります。
false || false の場合は、両方ともfalseでtrueが存在しないので、結果はfalseになります。

先ほどの例を使うとこのようになります。


let tarou = 100   // たろうは100点
let ayaka = 60   // あやかは60点
let makoto = 10   // まことは10点

var result: Bool   // Bool型

//たろうの点数が50点以上 ||(または) あやかの点数が50点以上 -> true || true
result = tarou >= 50 || ayaka >= 50   // true
//太郎の点数が50点以上 ||(または) まことの点数が50点以上 -> true || false 
result = tarou >= 50 || makoto >= 50   //true
//三人のテストの結果が50点以上 -> true || true || false
result = tarou >= 50 || ayaka >= 50 || makoto >= 50   //true

論理和の場合は、どれか一つでもtrueが入っていれば結果はtrueになるということです!

Bool型は最初のうちはよくわかりませんでしたが、
使っていく内に結構慣れていきました!

分からなくても色々試して調べて使えるようにしていきましょう!

以上、ありがとうございました。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?