Умовний вираз. Поняття. Особливості використання з операторами if та when. Приклади
Зміст
- 1. Умовний вираз. Поняття. Використання оператора if в умовному виразі
- 2. Синтаксис умовного виразу для повної форми: if-else
- 3. Синтаксис умовного виразу для сходинкової (каскадної) форми if-else-if
- 4. Приклади умовних виразів для оператора if-else
- 5. Приклади умовних виразів для оператора if-else-if
- 6. Використання умовного виразу в поєднанні з оператором when
- 7. Приклади використання умовного виразу з оператором when
- Споріднені теми
Пошук на інших ресурсах:
1. Умовний вираз. Поняття. Використання оператора if в умовному виразі
Мова Kotlin дозволяє використовувати так звані умовні вирази. В умовному виразі оператор if (усі його види) зв’язується з деякою змінною (іменем). Потім за іменем цієї змінної можна викликати код умовного виразу. Використання умовних виразів спрощує програмний код.
Для різних видів операторів if синтаксис оголошення умовного виразу відповідно змінюється.
Мова Kotlin забороняє використання умовного виразу для скороченої форми оператора if. Допускається використовувати умовний вираз тільки для повної форми та сходинкової (каскадної) форми оператора if.
⇑
2. Синтаксис умовного виразу для повної форми: if-else
Для повної форми оператора if-else синтаксис умовного виразу наступний:
val cond_expr : Type = if (condition) statements1 else statements2
тут
- cond_expr – ім’я змінної, яка отримує умовний вираз;
- condition – деякий логічний вираз;
- statements1, statements2 – один або декілька операторів (інструкцій) взятих у фігурні дужки.
Допускається також використовувати модифікатор var в оголошенні умовного виразу.
⇑
3. Синтаксис умовного виразу для сходинкової (каскадної) форми if-else-if
Умовні вирази можна застосовувати також до сходинкової (каскадної) форми оператора if-else-if. У цьому випадку синтаксис оголошення умовного виразу наступний:
val cond_expr = if (condition1) statements_1 else if (condition2) statements_2 else ... else if (conditionN) statements_N else statements_N+1
де
- cond_expr – ім’я змінної, яка отримує умовний вираз;
- condition1, condition2, conditionN – логічні вирази;
- statements_1, statements_2, statements_N – один або декілька операторів чи значень.
⇑
4. Приклади умовних виразів для оператора if-else
4.1. Мінімум між двома числами
Задача. Сформувати умовний вираз, який отримує мінімальне значення між двома дійсними числами.
Розв’язок.
fun main(args:Array<String>) { // Умовний вираз. Повна форма: if-else // Обчислити мінімум між двома числами // 1. Оголосити змінні val a : Double val b : Double // 2. Ввести a, b print("a = ") a = readLine().toString().toDouble() print("b = ") b = readLine().toString().toDouble() // 3. Сформувати умовний вираз val Min = if (a<b) a else b // 4. Викликати умовний вираз println("Min = " + Min) }
Тестовий приклад
a = 23 b = 33 Min = 23.0
⇑
4.2. Модуль числа
Умова задачі. Сформувати умовний вираз, який для заданого числа a виводить модуль цього числа.
Розв’язок.
fun main(args:Array<String>) { // Умовний вираз. Повна форма: if-else // Вивести модуль числа // 1. Оголосити змінні val a : Double // 2. Ввести a print("a = ") a = readLine().toString().toDouble() // 3. Сформувати умовний вираз, який виводить модуль числа val PrintAbs = if (a<0) println("abs(a) = " + (-a)) else println("abs(a) = " + a) }
Тестовий приклад
a = -37 abs(a) = 37.0
⇑
5. Приклади умовних виразів для оператора if-else-if
5.1. Умовний вираз – максимум між трьома числами
У прикладі створюється умовний вираз з іменем Max, який визначає максимум між трьома числами a, b, c введеними з клавіатури.
fun main(args:Array<String>) { // Умовний вираз. Каскадна форма: if-else-if // Обчислити максимум між трьома числами var a : Int var b : Int var c : Int print("a = ") a = readLine().toString().toInt() print("b = ") b = readLine().toString().toInt() print("c = ") c = readLine().toString().toInt() // Оголошення умовного виразу - обчислює максимум між a, b, c // У змінну Max записується одне зі значень a, b, c var Max = if ((a>=b)&&(a>=c)) a else if ((b>=a)&&(b>=c)) b else c // Викликати умовний вираз Max println("Max = " + Max) }
Тестовий приклад
a = 25 b = 30 c = 14 Max = 30
⇑
5.2. Обчислення характеристик геометричних фігур
Задача. Задано радіус r та число n, що визначає номер фігури. В залежності від значень r та n обчислити:
- довжину кола, якщо n=1;
- площу круга, якщо n=2;
- об’єм кулі, якщо n=3.
Розв’язок.
const val Pi = 3.1415 fun main(args:Array<String>) { // Умовний вираз. Каскадна форма: if-else-if // Обчислити характеристики фігури // 1. Оголосити змінні val r : Double val n : Int // 2. Ввести n, r print("n = ") n = readLine().toString().toInt() print("r = ") r = readLine().toString().toDouble() // 3. Перевірка, чи коректно введені дані if ((n<1)||(n>3)||(r<0)) { println("Incorrect input.") return } // 4. Оголосити умовний вираз val result : Double = if (n==1) 2*Pi*r else if (n==2) Pi*r*r else if (n==3) 4.0/3.0*Pi*r*r*r else 0.0 // 5. Викликати умовний вираз println("result = " + result) }
Тестовий приклад
n = 3 r = 2.5 result = 65.44791666666666
⇑
6. Використання умовного виразу в поєднанні з оператором when
Умовний вираз може використовуватись в поєднанні з оператором when. У спрощеній формі синтаксис оголошення такого виразу наступний
val cond_expr = when { ... }
⇑
7. Приклади використання умовного виразу з оператором when
7.1. Вивести назву дня за номером дня
Задача. Задано ціле число, що визначає день тижня (1..7). За введеним числом вивести назву відповідного дня тижня. Вважати, що 1 це Monday.
fun main(args:Array<String>) { // Умовний вираз. Оператор when // Обчислити назву дня тижня за його номером // 1. Оголосити змінні val day : Int // 2. Ввести день print("day = ") day = readLine().toString().toInt() // 3. Оголосити умовний вираз val dayOfWeek : String = when (day) { 1 -> "Monday" 2 -> "Tuesday" 3 -> "Wednesday" 4 -> "Thirsday" 5 -> "Friday" 6 -> "Saturday" 7 -> "Sunday" else -> "Incorrect input" } // 4. Використати умовний вираз для деякого day println("dayOfWeek = " + dayOfWeek) }
Тестовий приклад
day = 4 dayOfWeek = Thirsday
⇑
7.2. Кількість днів у місяці
Задача. Сформувати умовний вираз, який на основі заданого номера місяця виводить кількість днів у цьому місяці. При формуванні виразу використати оператор when. Прийняти до уваги, що рік невисокосний.
Розв’язок.
fun main(args:Array<String>) { // Умовний вираз. Оператор when // Сформувати кількість днів у місяці // 1. Оголосити змінні val n : Int // 2. Ввести n print("n = ") n = readLine().toString().toInt() // 3. Сформувати умовний вираз val nDays = when (n) { 4, 6, 9, 11 -> 30 2 -> 28 else -> 31 } // 4. Вивести результат println("days = " + nDays) }
Тестовий приклад
n = 7 days = 31
⇑
Споріднені теми
- Оператор умовного переходу if-else. Види операторів умовного переходу
- Вкладені оператори умовного переходу. Оператор умови if як складова інших операторів. Приклади
- Оператор when
⇑