Итерирование по элементам
Часть раздела Основы путешествия по Swift на Coddy — урок 69 из 86.
Теперь, когда вы знаете, как создавать и изменять массивы, давайте изучим, как обрабатывать каждый элемент по очереди. Цикл for-in делает это невероятно простым.
Когда вы используете цикл for-in с массивом, Swift автоматически предоставляет вам каждый элемент по порядку:
let fruits = ["Apple", "Banana", "Cherry"]
for fruit in fruits {
print(fruit)
}
// Apple
// Banana
// CherryПеременная fruit принимает каждое значение из массива во время каждой итерации. Вы можете назвать эту переменную как угодно, если это имеет смысл для ваших данных.
Этот паттерн идеально подходит для выполнения операций над каждым элементом, например, для вычисления общей суммы:
let prices = [9.99, 14.50, 3.25]
var total = 0.0
for price in prices {
total += price
}
print(total) // 27.74Вы также можете использовать цикл для создания новых массивов на основе существующих:
let numbers = [1, 2, 3, 4]
var doubled = [Int]()
for number in numbers {
doubled.append(number * 2)
}
print(doubled) // [2, 4, 6, 8]Итерация по массивам — одна из самых распространенных операций в программировании, поэтому освоение этого паттерна сослужит вам хорошую службу.
Задание
ЛегкоНапишите функцию countPositives, которая принимает numbers и возвращает количество положительных чисел в массиве.
Используйте цикл for-in для перебора каждого элемента и подсчета количества чисел больше нуля.
Параметры:
numbers([Int]): Массив целых чисел
Возвращает: Количество положительных чисел (больше 0) в массиве (Int)
Пример: Если numbers равно [-3, 5, 0, 8, -1, 12], функция должна вернуть 3 (положительные числа: 5, 8 и 12).
Шпаргалка
Используйте цикл for-in для итерации по каждому элементу массива:
let fruits = ["Apple", "Banana", "Cherry"]
for fruit in fruits {
print(fruit)
}
// Apple
// Banana
// CherryПеременная цикла (fruit в данном примере) принимает каждое значение из массива во время каждой итерации.
Вы можете использовать циклы for-in для вычисления итоговых сумм:
let prices = [9.99, 14.50, 3.25]
var total = 0.0
for price in prices {
total += price
}
print(total) // 27.74Вы также можете создавать новые массивы, перебирая существующие:
let numbers = [1, 2, 3, 4]
var doubled = [Int]()
for number in numbers {
doubled.append(number * 2)
}
print(doubled) // [2, 4, 6, 8]Попробуйте сами
func countPositives(numbers: [Int]) -> Int {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод