Цикл for в Swift 5.9: подробное руководство
Цикл for в Swift: Повторяем действия легко и просто
Что такое цикл for и зачем он нужен?
Представь, что тебе нужно 10 раз написать в тетради: «Я буду хорошо учиться». Можно писать это вручную 10 раз, но это долго и скучно. А можно сказать волшебную фразу: «Повтори 10 раз: Я буду хорошо учиться». Компьютер сделает всё сам!
В программировании такая «волшебная фраза» называется циклом. Цикл for — это команда, которая заставляет компьютер выполнять одно и то же действие несколько раз подряд. Мы говорим компьютеру: «Сделай это N раз», и он послушно выполняет команду.
Циклы помогают нам:
- Не писать однотипный код много раз
- Обрабатывать списки данных (например, список учеников в классе)
- Считать что-то (например, сколько конфет раздали)
- Автоматизировать повторяющиеся задачи
Основной синтаксис цикла for
В Swift 5.9 цикл for выглядит так:
for переменная in диапазон {
// команды, которые нужно повторить
// переменная будет меняться на каждом шаге
}
Самая простая форма — перебор чисел от 1 до N:
for i in 1...5 {
print("Это шаг номер \(i)")
}
Результат работы программы:
Это шаг номер 1
Это шаг номер 2
Это шаг номер 3
Это шаг номер 4
Это шаг номер 5
Обрати внимание на ... — это оператор диапазона. 1...5 означает «все числа от 1 до 5 включительно».
Если нужно до числа, но не включая его, используется ..<:
for i in 1..<5 {
print(i)
}
// Выведет: 1, 2, 3, 4 (без 5!)
Где взять количество повторений?
Часто количество повторений мы узнаём от пользователя. Для этого используется readLine() — команда, которая считывает то, что ввёл пользователь с клавиатуры.
Важно: readLine() возвращает строку (текст), а нам нужно число. Поэтому мы преобразуем строку в число с помощью Int().
print("Сколько раз повторить?")
let countString = readLine()!
let count = Int(countString)!
for i in 1...count {
print("Повтор номер \(i)")
}
Если пользователь введёт 3, программа выведет:
Повтор номер 1
Повтор номер 2
Повтор номер 3
Разбор типичных задач
Задача «Лифт»
Ты на нулевом этаже. Нужно вывести на экран все этажи, которые проезжает лифт, пока не доедет до нужного.
print("На какой этаж едем?")
let floorString = readLine()!
let targetFloor = Int(floorString)!
print("Лифт поехал!")
for currentFloor in 1...targetFloor {
print("Едем на этаж \(currentFloor)")
}
print("Приехали!")
Если ввести 4, программа покажет:
Едем на этаж 1
Едем на этаж 2
Едем на этаж 3
Едем на этаж 4
Приехали!
Задача «Банкомат»
Банкомат просит повторить фразу заданное количество раз.
print("Введите фразу для повторения:")
let phrase = readLine()!
print("Сколько раз повторить?")
let repeatCountString = readLine()!
let repeatCount = Int(repeatCountString)!
for _ in 1...repeatCount {
print(phrase)
}
Обрати внимание на _ (нижнее подчёркивание). Если нам не нужна переменная-счётчик (нас интересует только количество повторений), мы используем _ вместо имени переменной.
Задача «Кибербезопасность»
Лечим компьютер от вирусов. Каждый шаг — проверка одного файла.
print("Сколько файлов нужно проверить?")
let filesString = readLine()!
let totalFiles = Int(filesString)!
print("Начинаем проверку...")
for fileNumber in 1...totalFiles {
print("Проверяю файл номер \(fileNumber)...")
print("Вирусов не найдено. Файл чист!")
}
print("Проверка завершена!")
Задача «Поднятие мотивации»
Ты в спортзале. Нужно сделать заданное количество упражнений.
print("Сколько упражнений сегодня делаем?")
let exercisesString = readLine()!
let totalExercises = Int(exercisesString)!
for exerciseNumber in 1...totalExercises {
print("Упражнение \(exerciseNumber): поднимаем штангу!")
print("Отдыхаем 30 секунд...")
}
print("Тренировка окончена! Молодец!")
Задача «День рождения»
Раздаём конфеты одноклассникам по одной каждому.
print("Сколько конфет ты принёс?")
let candyString = readLine()!
let totalCandy = Int(candyString)!
print("Начинаем раздавать конфеты!")
for candyNumber in 1...totalCandy {
print("Раздаю конфету номер \(candyNumber). Кому?")
let name = readLine()!
print("\(name) получил конфету! С днём рождения!")
}
print("Все конфеты розданы! Ура!")
Частые ошибки новичков
Ошибка 1: Забыть преобразовать строку в число
// НЕПРАВИЛЬНО:
let count = readLine()! // Это строка, а не число!
for i in 1...count { } // Ошибка!
// ПРАВИЛЬНО:
let countString = readLine()!
let count = Int(countString)!
for i in 1...count { }
Ошибка 2: Перепутать ... и ..<
// Если нужно 5 раз, пишем 1...5 (включая 5)
// Если пишем 1..<5 — будет 4 раза (1,2,3,4)
Ошибка 3: Забыть про восклицательный знак !
После readLine() и Int() нужно ставить ! — это значит «я уверен, что здесь есть значение». Без него программа не скомпилируется.
Ошибка 4: Использовать for, когда нужно просто выполнить действие один раз
Если «повторить 1 раз» — цикл не нужен. Цикл нужен, когда действий много (2, 10, 100, 1000).
Итоговый пример: «Сбор яблок в саду»
Представь, что ты собрал урожай яблок. Нужно посчитать, сколько яблок в каждой корзине. У тебя есть несколько корзин, и в каждой лежит разное количество яблок. Ты вводишь количество яблок в каждой корзине.
print("Сколько корзин с яблоками?")
let basketsString = readLine()!
let baskets = Int(basketsString)!
var totalApples = 0 // Общее количество яблок
for basketNumber in 1...baskets {
print("Сколько яблок в корзине номер \(basketNumber)?")
let applesString = readLine()!
let apples = Int(applesString)!
totalApples = totalApples + apples
print("В корзине \(basketNumber) — \(apples) яблок")
}
print("Всего собрано \(totalApples) яблок!")
Пример работы программы:
Сколько корзин с яблоками?
3
Сколько яблок в корзине номер 1?
5
В корзине 1 — 5 яблок
Сколько яблок в корзине номер 2?
8
В корзине 2 — 8 яблок
Сколько яблок в корзине номер 3?
3
В корзине 3 — 3 яблок
Всего собрано 16 яблок!
Цикл for помог нам обработать все корзины, не повторяя один и тот же код три раза. Если бы корзин было 100, мы бы просто изменили число, и код бы сработал без изменений!
Запомни главное: цикл for — это твой помощник, который делает повторяющуюся работу за тебя. Ты только говоришь, сколько раз нужно повторить, а компьютер выполняет команды. Удачи в программировании!