Диапазоны в циклах
Часть раздела Основы путешествия по Kotlin на Coddy. Урок 51 из 93.
До сих пор мы использовали 1..5, чтобы создавать диапазоны, увеличивающиеся на единицу. Kotlin предлагает более гибкие способы определения диапазонов для циклов.
Чтобы считать в обратном порядке, используй downTo:
for (i in 5 downTo 1) {
println(i)
}
// Вывод: 5, 4, 3, 2, 1Чтобы пропускать числа, добавь step, чтобы управлять шагом:
for (i in 0..10 step 2) {
println(i)
}
// Вывод: 0, 2, 4, 6, 8, 10Вы можете объединить downTo с step для обратного отсчёта с пользовательскими интервалами:
for (i in 10 downTo 1 step 3) {
println(i)
}
// Вывод: 10, 7, 4, 1Если нужно исключить последнее значение, используйте until вместо ..:
for (i in 1 until 5) {
println(i)
}
// Вывод: 1, 2, 3, 4Ключевое слово until особенно полезно при работе с индексами, начинающимися с нуля, когда часто нужно остановиться, не достигнув определённого числа.
Задание
СреднеСчитайте из ввода два целых числа: start и end.
Выведите все чётные числа от start до end в обратном порядке (включительно), каждое с новой строки.
Используйте downTo с step, чтобы создать диапазон. Если start нечётное, начните с первого чётного числа меньше него.
Например, если ввод такой:
10
2Вывод должен быть таким:
10
8
6
4
2Если ввод такой:
9
3Вывод должен быть таким:
8
6
4Если в указанном диапазоне нет чётных чисел, выведите No even numbers в одной строке. В противном случае выведите каждое чётное число в отдельной строке.
Попробуйте сами
fun main() {
// Читать ввод
val start = readLine()!!.toInt()
val end = readLine()!!.toInt()
// TODO: Напишите ваш код ниже
// Используйте downTo с step, чтобы вывести все чётные числа от start вниз до end
// Если start нечётный, начните с первого чётного числа ниже него
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеОператоры сравненияПовторение — простая математика7Базовый ввод-вывод
Функция PrintlnШаблоны строкВвод ReadLineПреобразование типовПовторение — лет до выхода на пенсиюПовторение — правда или ложь10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияИменованные аргументыЗначения по умолчаниюФункции с одним выражениемПовторение — функция SigmaПовторение — функция валидации13Итерация по последовательностям
Итерация по элементамМетод WithIndexИтерация по строкам, ч. 1Итерация по строкам, ч. 2Повторение — индексированные буквы2Переменные
Val и VarВывод типовЧислаСтрокаЛогическое значениеСоглашения об именованииПовторение — инициализация переменных5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Логические операторы, часть 3Тернарный оператор с выражением ifПовторение — простая логика8Калькулятор разделения счёта
Приветственное сообщениеВвод данных3Обработка null
Что такое безопасность nullТипы, допускающие nullОператор безопасного вызоваОператор ЭлвисаОсновы задания на функцииУтверждение ненулевого значенияПовторение — безопасный доступ6Принятие решений
Инструкция ifIf — ElseIf как выражениеВыражение whenWhen с диапазонамиПовторение — простой калькулятор9Циклы
Цикл ForЦикл WhileЦикл Do-WhileBreakContinueДиапазоны в циклахВложенный циклПовторение — факториалПовторение — динамический вводПотренируйтесь самостоятельно: Песочница Kotlin