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 должен гарантировать возврат значения независимо от того, какое условие истинно.
Задание
ЛегкоВам предоставлена следующая переменная:
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"
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
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