Kotlin: оператор when? 🤔(основи програмування)

Alexander Khyzhun
3 min readAug 27, 2022

--

Привіт, на черзі у нас оператор 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, можу допомогти зробити резюме, проведу співбесіду і так далі.

🎬 Весь контент, який я роблю — це все мій особистий досвід.
Я пишу/знімаю все сам і ділюсь з вами корисною інформацією, яку ніхто не розповідає, тому підтримайте підпискою ❤️

🙂 На цьому у мене — все!
👉🏻 Ставте лексуси, підписуйтесь і будьте умнічками.

Якщо я правий — похваліть, якщо ні — посваріть.
Но в любому випадку не забудьте дати фідбек 😉

Успіхів! 🇺🇦🦄

ios, android, it, programming, software, engineer, инженер, базы данных, database, code, backend, frontend, webdevelopment, scrum, jira, HR, recruiter, coding, flutter, react, html, css, angular, kotlin, java, python, php, c++, c#, swift, reactnative, mobile, vlog, tutorials, how to, git, QA, BA, алгоритмы, скрам, джира, айти, робота, іт, програмування, алгоритми, розробка, інженерія, фронтенд, бекенд, андроїд, дизайн, кодити, кодінг, флатер, котлін, джава, уроки, навчання, менеджмент
image for preview

--

--

Alexander Khyzhun
Alexander Khyzhun

Written by Alexander Khyzhun

🧙🏻‍♂️ Software Wizard 🎬 Tech blogger 🎌 JDM 🎷 Lofi artist 🏊🏻‍♂️ Swimmer

No responses yet