Menu
Coddy logo textTech

Выражение when

Часть раздела Основы путешествия по Kotlin на Coddy. Урок 32 из 93.

Когда нужно проверить несколько конкретных значений, длинные цепочки операторов else if могут стать трудными для чтения. В Kotlin выражение when является более удобной альтернативой для сопоставления значения с несколькими возможностями.

fun main() {
    val day = 3
    
    val dayName = when (day) {
        1 -> "Monday"
        2 -> "Tuesday"
        3 -> "Wednesday"
        4 -> "Thursday"
        5 -> "Friday"
        else -> "Weekend"
    }
    
    println(dayName)  // Выводит: Wednesday
}

Выражение when принимает значение и сравнивает его с каждой ветвью. Когда совпадение найдено, возвращается соответствующий результат. Ветка else обрабатывает любое значение, которое не соответствует перечисленным случаям.

Вы также можете сопоставить несколько значений в одной ветви, разделив их запятыми:

fun main() {
    val day = 6
    
    val type = when (day) {
        1, 2, 3, 4, 5 -> "Weekday"
        6, 7 -> "Weekend"
        else -> "Invalid"
    }
    
    println(type)  // Выводит: Weekend
}

Значение, возвращаемое конструкцией when, должно быть исчерпывающим: для каждого возможного входного значения должен быть результат. В этих примерах с целыми числами необходим else, но конструкция when для Boolean с обеими ветвями — true и false — в нём не нуждается.

challenge icon

Задание

Легко

Вам предоставлена следующая переменная:

val month = 4

Используйте выражение when, чтобы определить время года на основе номера месяца и сохранить результат в переменной с именем season.

Условия:

  • Месяцы 12, 1, 2 должны возвращать "Winter"
  • Месяцы 3, 4, 5 должны возвращать "Spring"
  • Месяцы 6, 7, 8 должны возвращать "Summer"
  • Месяцы 9, 10, 11 должны возвращать "Fall"
  • Любое другое значение должно возвращать "Invalid month"

Используйте значения, разделённые запятыми, в ветвях when, чтобы сгруппировать месяцы, относящиеся к одному времени года.

Выведите значение season.

Попробуйте сами

fun main() {
    val month = 4
    
    // TODO: Напишите ваш код ниже
    // Используйте выражение when, чтобы определить время года на основе месяца
    // Сохраните результат в переменной с именем 'season'
    
    
    // Выведите результат
    println(season)
}
quiz iconПроверьте себя

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

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

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