- •Объявление, инициализация и изменение значения. Виды операторов. Переменные и константы. Виды объектов.
- •Типы данных
- •4. Числовые типы данных. Арифметические операторы. Приведение числовых типов данных.
- •5. Текстовые типы данных. Инициализация строковых значений. Приведение к строковому типу данных. Объединение строк.
- •6. Логические значения. Логические операторы.
- •Как проверить, есть ли значение в переменной с опциональным типом данных?
- •12* Операторветвления switch. Fallthrough. Where.
- •13.Сұрақ. Кортежи в операторе switch
- •Наборы: объявление набора, создание пустого набора, доступ к набору и модификация набора.
- •Оператор while
- •Оператор repeatwhile
- •24 Функции: объявление, синтаксис вызова функции. Примеры.
- •Заметка
- •25.Входные аргументы и возвращаемое значение
- •Глава 15 • Функции 245
- •26 Функция в качестве входного аргумента
- •27.Кортеж в качестве возвращаемого значения
- •28. Функционалдымүмкіндіктер. Функционалдытүрі. Функция аргумент ретінде.
- •29. Күрделіфункционалды тип. Қайтарумәніретінде функция
- •30. Кірістірілгенфункциялар. Функциянышамадантысжүктеу.
- •31. Рекурсивный вызов функций. Безымянные функции.
- •32.Замыкания. Функция как замыкания
- •33. Замыкание.Замыкающие выражение
- •Неявные возвраты из замыканий с одним выражением
- •Сокращенные имена аргументов
- •Создание нового отсортированного массива#
- •Сортировка существующего массива на месте#
- •Сортировка массива с пользовательским заказом#
- •38.Объектно-ориентированное программирование в Swift. Экземпляры
- •43. Собственны еинициализаторы
- •44. Методы в структурах
- •45.Сыныптар құрылымдарға өте ұқсас, бірақ олар бірнеше маңызды нүктелермен ерекшеленеді.
- •Переопределение свойств
- •52.Псевдоним Any.Приведение типа Any.Псевдоним AnyObject
- •53.Инициализаторы
- •54.Деинициализаторы
- •Создание Auto Layout и его составляющих
- •. Понятие Segues. Виды Segues.
- •59. Создание программируемых переходов. (ProgrammaticSeguesiniOs)
- •60 .Передачаданныхмеждуконтроллерами. (Passing Data Between Controllers)
- •Отображение данных в мобильном приложении ввиде списка. Работа с таблицами в iOs (Working With Tables)
- •Понятие делегата и протокола на примере работы с таблицами. Назначение и принцип работы. (Table delegates and protocols)
- •Опциональные протоколы
- •Использование протоколов
- •Делегаты
- •Создание и отображение данных в ячейках (Creating custom table cell)
- •Принципы работы с Core Data (Working With Core Data, Saving to Core Data, Fetching data from Core Data, Deleting items from Core Data)
- •Понятие и назначение rest & crud (Understanding rest & crud)
- •67.Асинхронды
- •68. Создание post запросов (Making post requests)
- •Размеры и другие детали внешнего исполнения[править | править код]
Оператор while
СИНТАКСИС
whileпроверяемое_выражение {
//тело оператора
}
проверяемое_выражение->Bool—выражение,приистинностикотороговы- полняется код из телаоператора.
Одновыполнениекодателаоператораназываетсяитерацией.Итерацииповторяются, покавыражениевозвращаетtrue.Егозначениепроверяетсяпередкаждойитерацией.
Рассмотрим пример использования оператора while.Произведем с его помощьюсложениевсехчиселот1до 10 (листинг13 .28) .
Листинг 13.28
// начальное значение var i = 1
// хранилище результата сложения varresultSum = 0
// цикл для подсчета суммы while i <= 10 {
resultSum += i i += 1
}
resultSum // 55
Переменная i является счетчиком в данном цикле.Основываясь на ее значении, оператором определяется необходимость выполнения кода в теле цикла.На каждой итерации и значение i увеличивается наединицу, и как только оно достигает 10, то условие, проверяемо еоператором, возвращает false, после чего происходит выход из цикла.
Оператор while— это цикл с предварительной проверкой условия, то есть вначале проверяется условие, а уже потом выполняется или не выполняется код тела оператора. Если условие вернет false уже при первой проверке, то код внутри оператора проигнорируется и не будет выполнен ни одного раза.
Оператор repeatwhile
Вот личие от while оператор repeatwhile является циклом спостпро- веркой условия. В таком цикле проверка значения выражения происходит в конце итерации.
СИНТАКСИС
repeat {
// тело оператора
} whileпроверяемое_выражение
проверяемое_выражение->Bool—выражение,приистинностикотороговы- полняется код из телаоператора.
Одно выполнение кода тела оператора называется итерацией. Итерации повторя- ются, пока выражение возвращает true. Его значение проверяется после каждой итерации, таким образом, тело оператора будет выполнено не менее одного раза.
Реализуемспомощьюданногооператорарассмотреннуюранеезадачу сложениячиселот1до10(листинг13 .29) .
Листинг 13.29
// начальное значение var y = 1
// хранилище результата сложения varresult = 0
// цикл для подсчета суммы repeat{
result += y y += 1
} while y <= 10 result // 55
Разница между операторами while и repeatwhile заключается в том, что код тела оператора repeatwhile выполняется не менее одного раза. То есть даже если условие при первой итерации и вернет false, код тела цикла к этому моменту уже будет выполнен.
Оператор continue, break
Если в ios-приложении (и не только) используются массивы большой размерности, то перебор элементов этих массивов может быть затратной с точки зрения ресурсов и производительности операцией. Однако не всегда нужно перебирать все элементы массива от начала до конца.
Для оптимизации работы приложения, внутри которого происходит перебор с помощью цикла, можно использовать следующие приемы:
Выход из цикла
Из цикла вы может выйти в любое время с помощью оператора break:
varfound = false
varcount = 0
foriteminarray {
ifitem == search {
found = true
count++
break }
}
Как только цикл найдет элемент item, который удовлетворяет условию поиска search, он изменит значение переменной found и увеличит значение счетчика count на 1. А после этого прекратит дальнейший перебор элементов массива array, использую оператор break. В итоге, если в массиве есть элемент, удовлетворяющий условиям поиска, значениеcount будет равно 1, и более оно не изменится. Вы нашли то, что вы искали и если не имеет никакого смысла смотреть на другие объекты в этом массиве (которых могут быть сотни), вы используете break.
Существует также оператор continue, который работает отлично от break. Оператор не выходит из цикла, но сразу же переходит к следующей итерации (следующему шагу).
varfound = false
foriteminarray {
ifitem == search {
count++
continue
found = true
print("Found!")
}
}
В этом примере цикл переберет все элементы, и после его выполнения переменная count будет равна количеству элементов в массиве array, удовлетворяющих условию поиска search. Но переменная found никогда не примет значение true, и функция print() также не сработает. Как только исполнение программы дойдет до оператора continue, шаг цикла завершится, и начнется следующий шаг с новым элементом item.