Тип Bool. Условные выражения


Тип Bool представляет логическое значение true (истина) или false (ложь). То есть объект Bool может находиться в двух состояниях:

1
2
var isEnabled: Bool = true
isEnabled = false
Объекты типа Bool нередко являются результатом условных выражений, то есть таких выражений, которые представляют некоторое условие, и в зависимости от истинности условия возвращают true или false: true - если условие истинно и false - если условие ложно.

Операции сравнения
Операции сравнения сравнивают два значения и в зависимости от результата сравнения возвращают объект типа Bool: true или false.

==

Операция равенства. Сравнивает два значения, и если они равны, возвращает true:

1
2
3
4
5
6
7
var a = 10
var b = 10
var c = a == b
print(c) // true, так как a равно b
var d = 8
c = a==d
print(c) // false, так как a не равно d
!=

Операция неравенства. Сравнивает два значения, и если они неравны, возвращает true:

1
2
3
4
5
6
7
var a = 10
var b = 10
var c = a != b
print(c) // false, так как a равно b
var d = 8
c = a!=d
print(c) // true, так как a не равно d
>

Сравнивает два значения и возвращает true, если первое значение больше второго:

1
2
3
4
5
6
7
var a = 15
var b = 10
var c = a > b
print(c) // true, так как a больше чем b
var d = 8
c = d > a
print(c) // false, так как d меньше чем a
<

Сравнивает два значения и возвращает true, если первое значение меньше второго:

1
2
3
4
5
6
7
var a = 15
var b = 10
var c = a < b
print(c) // false, так как a больше чем b
var d = 8
c = d < a
print(c) // true, так как d меньше чем a
>=

Сравнивает два значения и возвращает true, если первое значение больше или равно второму:

1
2
3
4
5
6
7
var a = 10
var b = 10
var c = a >= b
print(c) // true, так как a равно b
var d = 8
c = d >= a
print(c) // false, так как d меньше чем a
<=

Сравнивает два значения и возвращает true, если первое значение меньше или равно второму:

1
2
3
4
5
6
7
var a = 15
var b = 10
var c = a <= b
print(c) // false, так как a больше чем b
var d = 9
c = d <= a
print(c) // true, так как d меньше a
Логические операции
Логические операции выполняются над объектами типа Bool и в качестве результата также возвращают объект Bool.

!

Логическое "НЕ" или операция отрицания. Она инвертирует значение объекта: если он был равен true, то операция возвращает false, и наоборот:

1
2
var isEnabled: Bool = true
var result = !isEnabled // false
&&

Логическое "И" или операция логического умножения. Она возвращает true, если оба операнда операции имеют значение true:

1
2
3
4
5
6
7
8
let isEnabled: Bool = true
let isAlive = true
let result = isEnabled && isAlive // true - так как оба операнда равны true

let a: Bool = true
let b: Bool = false
let c: Bool = true
let d = a && b && c // false, так как b = false
||

Логическое "ИЛИ" или операция логического сложения. Она возвращает true, если хотя бы один из операндов операции равен true:

1
2
3
4
5
6
7
8
var isEnabled: Bool = true
var isAlive = false
isEnabled || isAlive // true, так как isEnabled равен true

var a: Bool = true
var b: Bool = false
var c: Bool = false
a || b || c // true, так как a = true
Нередко логические операции объединяют несколько операций сравнения:

1
2
3
4
5
6
let a = 10
let b = 12
let c = a > 8 && b < 10
let d = a > 8 || b < 10
print(c) // false
print(d) // true