Menu
Coddy logo textTech

If как выражение

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

Вы уже видели, как if можно использовать в одной строке для выбора между двумя значениями. Но если ваши блоки if-else содержат несколько инструкций, вы всё равно можете использовать всю конструкцию как выражение: последнее выражение в каждой ветви становится возвращаемым значением.

fun main() {
    val score = 85
    
    val message = if (score >= 60) {
        val grade = "passing"
        "You got a $grade score!"
    } else {
        val grade = "failing"
        "You got a $grade score."
    }
    
    println(message)  // Выводит: You got a passing score!
}

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

Это также работает с цепочками else if:

fun main() {
    val temperature = 25
    
    val description = if (temperature > 30) {
        "Hot"
    } else if (temperature > 20) {
        "Warm"
    } else {
        "Cool"
    }
    
    println(description)  // Выводит: Warm
}

При использовании if как выражения ветвь else обязательна: Kotlin должен гарантировать возврат значения независимо от того, какое условие истинно.

challenge icon

Задание

Легко

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

val hours = 45

Используйте выражение if с несколькими операторами в каждой ветви, чтобы определить статус оплаты работника и создать сообщение.

Создайте переменную payStatus с помощью выражения if:

  • Если hours больше 40:
    • Создайте переменную overtime, равную hours - 40
    • Последним выражением должно быть "Overtime: $overtime extra hours"
  • В противном случае:
    • Создайте переменную remaining, равную 40 - hours
    • Последним выражением должно быть "Regular: $remaining hours until overtime"

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

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

fun main() {
    val hours = 45
    
    // TODO: Напишите ваш код ниже
    // Создайте переменную payStatus с помощью if-выражения
    // Если hours > 40: создайте переменную overtime и верните "Overtime: $overtime extra hours"
    // Иначе: создайте переменную remaining и верните "Regular: $remaining hours until overtime"
    
    
}
quiz iconПроверьте себя

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

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

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