Условное выражение. Понятия. Особенности использования с операторами 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 // Вычислить максимум между тремя числами 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. Использовать условное выражение 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
⇑