Menu
Coddy logo textTech

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
}

Диапазоны делают код более читаемым при работе с непрерывными числовыми условиями, что часто встречается в системах оценивания, возрастных категориях и подобных сценариях.

challenge icon

Задание

Легко

Напиши функцию 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 {
    // Напишите код здесь
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Kotlin