Базовые операторы управления в Kotlin

kotlin

Управляющие конструкции или операторы управления на языке Kotlin (Котлин) несколько отличаются от тех, которые используются в таких языках программирования как Java, С++ и другие. Прежде всего, операторы Котлина значительно богаче по функционалу, ситуации, когда сложные условия в Kotlin записываются буквально в одну строку - обычное дело.

Оператор if

Назначение оператора, аналогично другим языкам программирования - это оператор ветвления. В зависимости от результата выражения, будет вызван один или другой блок кода. Например:

var value1: Int = 5
var value2: Int = 10

if (value1 > value2) {
    // если value1 будет больше чем value2, то выполнится эта часть кода
} else {
    // иначе сработает блок else
}
var value1: Int = 5
var value2: Int = 10

 // сокращенный вариант, если блок else не нужен и у нас всего одна строка кода
if (value1 > value2) println("value1 больше value2")

// однако правилами хорошего тона, будет запись с фигурными скобками, даже если они не нужны
if (value1 > value2) {
    println("value1 больше value2")
}
}

Интересной особенностью является то, что в блоках if-else можно вернуть какое-либо значение и сразу его присвоить переменной. Например вот так:

var result = if (value1 > value2) {
    print("Сработал if")
    100
} else {
    print("Сработал else")
    200
}

То есть, в данном случае сработает блок else, и переменной result пристроится значение = 200. Писать слово return тут не нужно.

Оператор when

Оператор when появился в Kotlin, как замена оператору switch, который хорошо известен и используется практически во всех языках программирования. Это оператор выбора. Он позволяет проверить выражение на множество совпадений и выполнить соответствующий блок кода. Оператор похож на if-else, но позволяет сделать запись более понятной и короткой, в случаях, когда необходимо выполнить множество проверок.

var value = 5
when (value) {
    1 -> {
        print("value == 1")
    }
    2 -> {
        print("value == 2")
    }
    5 -> {
        print("value == 5")
    }
    else -> { // если никакое значение не совпало
        print("else")
    }
}

А можно задать диапазон чисел, что-бы проверить, входит ли заданное значение в данный промежуток:

var value = 5
when (value) {
    1, 2 -> {
        print("value == 1 или value == 2")
    }
    in 5..10 -> {
        print("значение value от 5 до 10")
    }
   !in 11..12 -> {
        print("значение value не входит в промежуток 5 до 10")
    }
    15 -> {
        print("value == 15")
    }
    else -> { // если никакое значение не совпало
        print("else")
    }
}

Оператор очень гибкий с широкими возможностями. Так же как и if-else, можно вернуть значение и сразу его присвоить переменной:

var value = 5
var result = when (value) {
    1 -> {
        print("value == 1")
        100
    }
    in 5-> {
        print("value == 5")
        500
    }
    else -> { // если никакое значение не совпало
        print("else")
        700
    }
}

В данном случае, переменной result будет присвоено значение 500.

В видео, я на практике показываю, как работать с переменными, а также наглядно показываю операторы управления. Настоятельно рекомендую посмотреть (длительность 22 мин.). В описании к видео есть содержание с таймкодами, можно перейти сразу на интересующий вас раздел.

Обновлено 17 марта 2021

Теги:

"Сайт использует cookie-файлы для того, чтобы вам было удобнее им пользоваться. Для продолжения работы с сайтом, вам необходимо принять использование cookie-файлов."