Kotlin: оператор when? 🤔(основи програмування)
Привіт, на черзі у нас оператор WHEN. Дуже крута штука, яка набагато краще ніж if-else і зараз я поясню чому. Також сьогодні подивимось як його правильно використовувати і коли він потрібний взагалі.
Весь матеріал ви можете знайти переглянувши відео, але стислий конспект я залишу і тут.
Kotlin: when operator?
When визначає умовний вираз із кількома розгалуженнями. Це схоже на оператор switch у C-подібних мовах. Його проста форма виглядає так.
When порівнює свій аргумент з усіма варіантами послідовно, доки не буде виконано певну умову розгалуження.
When можна використовувати або як вираз, або як твердження.
- Якщо воно використовується як вираз, значення першої відповідної гілки стає значенням загального виразу.
- Якщо він використовується як оператор, значення окремих гілок ігноруються. Подібно до if, кожна гілка може бути блоком, а її значенням є значення останнього виразу в блоці.
Block Else викликається, якщо жодна з інших умов розгалуження не задовольняється.
Example
1. When по Int.
В нашому варіанті intNumber = 10, when оператор буде перевіряти всі наші case-и доки не знайте те, що відповідає значенню. В нашому випадку спрацює блок else, тому що значення 10, а ми перевіряємо тільки 1 або 2.
var intNumber = 10
when (intNumber) {
1 -> print(“value is 1”)
2 -> print(“value is 2”)
else -> print(“value of intNumber is neither 1 nor 2”)
}
2. When по String
В нашому варіанті name = “Bober, when оператор буде перевіряти всі наші case-и доки не знайте те, що відповідає значенню аналогічно як і з int. В нашому випадку спрацює перший блок, тобто “Bober”, тому що воно відповідає тому, що ми шукаємо. Інші блоки і навіть else не будуть ні перевірятись, ні спрацьовувати.
var name = “Bober”
when (name) {
“Bober” -> print(“name is Bober”)
“Zebra” -> print(“name is Zebra”)
else -> print(“not found”)
}
3. When без значення.
В нашому варіанті у нас немає значення. це значить, що ми перевіряємо різні кейси і не прив’язуємось до якогось конкретного значення. When оператор буде перевіряти всі наші case-и доки не знайте те, що буде істинно, тобто true. Якщо жоден кейс не спрацює, то викличиться блок else.
when {
a > 5 -> {…}
a is String -> {…}
a != 15 -> {…}
a in 0..9 -> {…}
…
else -> {…}
}
🎬 Ось мій канал, де будуть всі відео на різні теми в програмуванні:
📚 Ось мій Patreon, де будуть всі матеріали в текстовому форматі, додаткова інфа, розбір приклдів, домашні завдання, ІТ-словник, і тд:
Окрім цього, там є різні пропозиції, наприклад, можемо займатись 1х1, можу допомогти зробити резюме, проведу співбесіду і так далі.
🎬 Весь контент, який я роблю — це все мій особистий досвід.
Я пишу/знімаю все сам і ділюсь з вами корисною інформацією, яку ніхто не розповідає, тому підтримайте підпискою ❤️
🙂 На цьому у мене — все!
👉🏻 Ставте лексуси, підписуйтесь і будьте умнічками.
Якщо я правий — похваліть, якщо ні — посваріть.
Но в любому випадку не забудьте дати фідбек 😉
Успіхів! 🇺🇦🦄