step и downTo
Управляйте направлением перебора
«step и downTo» — бесплатный урок Kotlin Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Academy содержит 4 уроков всего.
Управление прогрессиями
Обычный диапазон увеличивается с шагом в единицу. Kotlin позволяет изменять размер шага и направление.
Для этого используются step и downTo, которые создают прогрессии.
Функция шага
step изменяет величину приращения значения на каждом шаге.
0..10 step 2 даёт 0, 2, 4, 6, 8, 10.
fun main() {
val progression = 0..10 step 2
println(progression.toList())
}Шаг, пропускающий конец
Шаг может не привести точно к верхней границе. Прогрессия просто останавливается на последнем значении внутри диапазона.
1..10 step 3 заканчивается на 10? Нет, она заканчивается на наибольшем достижимом значении.
fun main() {
val progression = 1..10 step 3
println(progression.toList())
}Функция downTo
downTo создаёт убывающую прогрессию.
5 downTo 1 даёт 5, 4, 3, 2, 1.
fun main() {
val countdown = 5 downTo 1
println(countdown.toList())
}Почему нельзя просто развернуть диапазон
Обычный диапазон вроде 5..1 является пустым, потому что начало больше конца.
Для обратного отсчёта необходимо использовать downTo.
fun main() {
println((5..1).toList()) // empty
println((5 downTo 1).toList())
}Объединение downTo и шага
К убывающей прогрессии тоже можно добавить step.
Шаг всегда является положительным числом; за направление отвечает downTo.
fun main() {
val progression = 10 downTo 0 step 2
println(progression.toList())
}Шаг должен быть положительным
Значение шага должно быть положительным даже при обратном отсчёте. Нулевой или отрицательный шаг вызывает исключение.
За направление отвечают .. и downTo, а не знак шага.
fun main() {
try {
val bad = 0..10 step 0
println(bad.toList())
} catch (e: IllegalArgumentException) {
println("step must be positive")
}
}Прогрессии поддерживают перебор
Прогрессию можно напрямую перебрать в цикле. Это наиболее распространённый способ её использования.
Она выдаёт каждое значение по очереди, не создавая список.
fun main() {
for (i in 10 downTo 1 step 3) {
print(i.toString() + " ")
}
println()
}Изучение прогрессии
Прогрессия знает свои значения first, last и step.
Обратите внимание: last может отличаться от запрошенного конца, если шаг пропускает его.
fun main() {
val p = 1..10 step 3
println(p.first)
println(p.last)
println(p.step)
}until с шагом
until также принимает шаг, задавая исключающую верхнюю границу и настраиваемое приращение.
Это удобно для выборки индексов.
fun main() {
val p = 0 until 10 step 2
println(p.toList())
}Объединяем всё вместе
Прогрессии дают полный контроль над перебором:
stepзадаёт приращениеdownToвыполняет обратный отсчёт- Шаг всегда положителен
- Их можно объединять и напрямую перебирать
fun main() {
for (i in 100 downTo 0 step 25) {
print(i.toString() + " ")
}
println()
}Быстрая проверка
Проверьте, насколько хорошо Вы поняли step и downTo.
Итоги
Вы научились управлять прогрессиями:
stepизменяет приращениеdownToсоздаёт убывающую последовательность- Значение шага всегда положительно
- Их можно объединять и перебирать
Далее Вы будете использовать диапазоны для написания понятных циклов.
Часто задаваемые вопросы
Урок «step и downTo» бесплатный?
Да — полный текст урока «step и downTo» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Academy, подпишись на CoddyKit PRO. Курс Kotlin Academy содержит 4 уроков всего.
Чему я научусь в уроке «step и downTo»?
Управляйте направлением перебора Ты практикуешь Kotlin Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kotlin Academy?
Предыдущий опыт не требуется. Kotlin Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «step и downTo»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kotlin Academy?
Да. Каждый урок Kotlin Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.