Условная конструкция If. Тернарный оператор


В языках программирования часто бывает необходимо произвести некоторые действия в зависимости от выполнения тех или иных условий. Если определенные условия соблюдаются, то выполнить одни действия, если не соблюдаются, то выполнить другие. И для в языках программирования применяются условные конструкции. Рассмотрим, какие условные конструкции есть в языке Swift.

Конструкция if/else
Конструкция if проверяет истинность некоторого условия и в зависимости от результатов проверки выполняет определенный код:

1
2
3
if условие {
// набор действий
}
Например:

1
2
3
4
5
6
let num1 = 22
let num2 = 15
if num1 > num2{

print("num1 больше чем num2")
}
Здесь если первое число больше второго, то сработает весь код в блоке if, который располагается между открывающей и закрывающей фигурными скобками. Если же первое число окажется меньше второго, тогда действия в конструкции if работать не будут.

Важно, что после слова if в этой конструкции должно идти значение типа Bool. Поскольку результат операции сравнения как раз возвращает логическое значение, то в данном случае ошибок не возникнет. Однако если мы укажем после if просто число или строку, то программа завершится ошибкой, как в следующем случае:

1
2
3
4
5
6
let num1 = 22
let num2 = 15
if num1{

print("num1 больше чем num2")
}
Если при проверке условия нам надо выполнить какие-либо альтернативные действия, то мы можем использовать блок else:

1
2
3
4
5
6
7
8
9
let num1 = 22
let num2 = 15
if num1 > num2{

print("num1 больше чем num2")
}
else{
print("num1 меньше чем num2")
}
Но при сравнении чисел мы можем насчитать три состояния: первое число больше второго, первое число меньше второго и числа равны. Используя конструкцию else if, мы можем обрабатывать дополнительные условия:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let num1 = 22
let num2 = 15
if num1 > num2{

print("num1 больше чем num2")
}
else if (num1 < num2){

print("num1 меньше чем num2")
}
else{

print("num1 и num2 равны")
}
Тернарный оператор
Тернарный оператор аналогичен простой конструкции if и имеет следующий синтаксис:

1
[первый операнд - условие] ? [второй операнд] : [третий операнд]
В зависимости от условия тернарный оператор возвращает второй или третий операнд: если условие равно true, то возвращается второй операнд; если условие равно false, то третий. Например:

1
2
3
var num1 = 10
var num2 = 6
var num3 = num1 > num2 ? num1 - num2 : num1 + num2
В данном случае num3 будет равно 4, так как num1 больше num2, поэтому будет выполняться второй операнд: num1 - num2.