0Pricing
Kotlin Academy · Урок

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 — локальная установка не требуется.

Все уроки этого курса

  1. Операторы диапазонов
  2. step и downTo
  3. Диапазоны в циклах
  4. Диапазоны Char и пользовательские диапазоны
← Назад к Kotlin Academy