Урок 3. Операторы в Swift
Главная / Уроки / Страница блока Основы / Урок 3. Операторы в Swift
1 Ноября 2022
Давайте начнем с самых простых операторов, которые вам точно знакомы.
Арифметические операторы
1. +
2. –
3. *
4. /
5. %
В школе на уроке математики вы все с ними сталкивались, кроме последнего, но об этом чуть позже.
Как мы их можем применить в программировании?
Создадим пару переменных с целочисленными значениями:
var quantityOfGoods = 20
var unitPrice = 500
Представим что наше приложение должно рассчитывать общую сумму купленных нами товаров за неделю. У нас есть количество товаров quantityOfGoods и цена за единицу товара unitPrice.
Теперь нам нужно посчитать общую сумму. Мы можем написать следующим образом:
var quantityOfGoods = 20
var unitPrice = 500
quantityOfGoods * unitPrice
// Первая неделя
var quantityOfGoods = 20
var unitPrice = 500
quantityOfGoods * unitPrice
// Вторая неделя
quantityOfGoods = 22
unitPrice = 400
quantityOfGoods * unitPrice
// Третья неделя
quantityOfGoods = 33
unitPrice = 300
quantityOfGoods * unitPrice
// Четвертая неделя
quantityOfGoods = 10
unitPrice = 700
quantityOfGoods * unitPrice
Не забываем, что компилятор читает код сверху вниз. Мы переопределяем свойства quantityOfGoods и unitPrace, после чего умножаем их. Таким образом нам не нужно для каждой недели создавать свойства для цены и для количества товара.
//Первая неделя
var quantityOfGoods = 20
var unitPrice = 500
let totalForFirstWeek = quantityOfGoods * unitPrice
// Вторая неделя
quantityOfGoods = 22
unitPrice = 400
let totalForSecondWeek = quantityOfGoods * unitPrice
//Третья неделя
quantityOfGoods = 33
unitPrice = 300
let totalForThirdWeek = quantityOfGoods * unitPrice
// Четвертая неделя
quantityOfGoods = 10
unitPrice = 700
let totalForFourthWeek = quantityOfGoods * unitPrice
//Первая неделя
var quantityOfGoods = 20
var unitPrice = 500
let totalForFirstWeek = quantityOfGoods * unitPrice
// Вторая неделя
quantityOfGoods = 22
unitPrice = 400
let totalForSecondWeek = quantityOfGoods * unitPrice
// Третья неделя
quantityOfGoods = 33
unitPrice = 300
let totalForThirdWeek = quantityOfGoods * unitPrice
// Четвертая неделя
quantityOfGoods = 10
unitPrice = 700
let totalForFourthWeek = quantityOfGoods * unitPrice
// Общий результат за месяц
let total = totalForFirstWeek + totalForSecondWeek + totalForThirdWeek + totalForFourthWeek
Кроме этих стандартных операторов существует еще один интересный оператор, который не встречается в математике. Это оператор остатка от деления. Он выглядит как проценты %. Давайте рассмотрим, как он работает на примере следующего выражения:
Для начала определим сколько троек входит в цифру 7:
Всё что не влезет в это значение и будет остатком. Давайте теперь найдем остаток от деления восьми на 3, что бы окончательно понять суть:
Таким образом, если мы будем находит остаток от деления девяти на три, то мы получим 0, потому что в девятке помещается три тройки без остатка.
Обычно этот оператор используют для нахождения четности числа. Давайте проверим является ли наше свойство total четным:
let total = totalForFirstWeek + totalForSecondWeek
+ totalForThirdWeek + totalForFourthWeek
let remainder = total % 2
Значение нашего свойства total является четным, потому что оно делится на два без остатка. Так же можно проверить кратное ли оно любому другому числу.
В Swift оператор остатка от деления работает как с положительными, так и с отрицательными числами. В том случае если total будет отрицательное, то остаток так же будет отрицательным, а если будет отрицательная двойка, то результат будет положительным. То есть выражение total % 2 и total % – 2, всегда будут выдавать одинаковый результат
Если делитель меньше делимого то вернется сам делитель:
В дальнейшем мы посмотрим как это можно использовать на практике.
Составные операторы присваивания
С оператором присваивания вы уже знакомы, и выглядит он как математический знак равно (=). Но не нужно его путать с математическим равно.
В отличии от математики, где этот оператор говорит о равенстве величин или выражает результат каких либо операций над величинами, в Swift этот оператор именно присваивает значение одного свойства другому.
Обратимся к примеру:
let numberOne = 4
var numberTwo = 6
numberTwo = numberOne
Это не значит, что numberTwo равно numberOne, это значит, что мы присваиваем значение numberOne для numberTwo. По факту мы переопределили, то есть изменили, значение у свойства numberTwo и оно теперь равно 4:
let numberOne = 4
var numberTwo = 6
numberTwo = numberOne
numberTwo = numberTwo + numberOne
Свойство numberTwo мы увеличиваем на значение numberOne, и такую запись можно сделать короче:
let numberOne = 4
var numberTwo = 6
numberTwo = numberOne
numberTwo += numberOne
numberTwo = numberOne
numberTwo += numberOne
numberTwo = numberTwo * numberOne
numberTwo *= numberOne
numberTwo = numberTwo / numberOne
numberTwo /= numberOne
numberTwo = numberTwo - numberOne
numberTwo -= numberOne