When с диапазонами
Часть раздела Основы путешествия по Kotlin на Coddy. Урок 33 из 93.
Иногда нужно проверить, попадает ли значение в диапазон, а не совпадает ли оно с определёнными значениями. Выражение when поддерживает это с помощью ключевого слова in в сочетании с диапазонами.
fun main() {
val score = 85
val grade = when (score) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
in 60..69 -> "D"
else -> "F"
}
println(grade) // Выводит: B
}Ключевое слово in проверяет, существует ли значение в указанном диапазоне. Здесь 85 попадает в диапазон 80..89, поэтому оценка — «B». Это гораздо лаконичнее, чем записывать score >= 80 && score <= 89 для каждого условия.
Вы также можете объединять диапазоны с определёнными значениями в одном выражении when:
fun main() {
val age = 17
val category = when (age) {
0 -> "Newborn"
in 1..12 -> "Child"
in 13..19 -> "Teenager"
else -> "Adult"
}
println(category) // Выводит: Teenager
}Диапазоны делают код более читаемым при работе с непрерывными числовыми условиями, что часто встречается в системах оценивания, возрастных категориях и подобных сценариях.
Задание
ЛегкоНапиши функцию getTicketPrice, которая принимает age и возвращает стоимость билета в зависимости от возрастной категории человека.
Используй выражение when с диапазонами, чтобы определить соответствующую стоимость билета.
Условия:
- Возраст от
0до3лет: вернуть0(бесплатно) - Возраст от
4до12лет: вернуть10(детская цена) - Возраст от
13до17лет: вернуть15(цена для подростков) - Возраст от
18до64лет: вернуть25(цена для взрослых) - Возраст
65лет и старше: вернуть12(цена для пожилых)
Параметры:
age(Int): возраст человека
Возвращает: стоимость билета в виде целого числа (Int)
Попробуйте сами
fun getTicketPrice(age: Int): Int {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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