Kotlin. Оператор умовного переходу if-else

Оператор умовного переходу if-else. Види операторів умовного переходу


Зміст


Пошук на інших ресурсах:

1. Оператор умовного переходу if-else. Види операторів умовного переходу. Призначення

У мові програмування Kotlin існують засоби, що змінюють обчислювальний процес в залежності від виконання деякої умови. До таких засобів відноситься оператор if-else.

Оператор умовного переходу має 3 форми:

  • скорочена форма if;
  • повна форма if-else;
  • сходинкова форма if-else-if.

 

2. Скорочена форма оператора умовного переходу: if

Загальна форма скороченої форми оператора умовного переходу наступна

if (condition)
    statement;

тут

  • condition – умовний вираз, який дає результат логічного типу Boolean. Якщо значення умовного виразу condition рівне true, то виконується оператор statement. Якщо значення condition рівне false, то нічого не виконується (виконується оператор, що слідує за оператором if);
  • statement – деякий оператор.

Якщо в скороченому операторі if потрібно виконати декілька операторів, то згідно з синтаксисом Kotlin ці оператори беруться у фігурні дужки { }. У цьому випадку загальна форма оператора if матиме вигляд:

if (condition) {
    // блок операторів (інструкцій)
    // ...
}

На рисунку 1 зображено схематичне позначення скороченої форми оператора if.

Kotlin. Оператор if. Скорочена форма

Рисунок 1. Скорочена форма оператора if

 

3. Повна форма: if-else

Повна форма оператора умовного переходу має вигляд

if (condition) {
  // блок інструкцій якщо condition=true
  // ...
}
else {
  // інструкції (оператори) якщо condition=false
  // ...
}

тут

  • condition – умовний вираз, значення якого визначає, яка група операторів буде виконуватись. Якщо condition=true, то виконуються оператори після ключового слова if. В противному випадку виконуються оператори після ключового слова else.

Якщо після ключового слова if або else потрібно виконати тільки один оператор, то фігурні дужки { } можна опустити.

На рисунку 2 зображено графічне позначення оператора if-else.

Kotlin. Оператор if-else. Графічне позначення

Рисунок 2. Оператор if-else. Графічне позначення

 

4. Сходинкова форма: if-else-if

Загальний синтаксис сходинкової форми умовного оператора if-else-if наступний

if (condition1) {
  // statements1
  // ...
}
else
if (condition2) {
  // statements2
  // ...
}
...
else
if (conditionN) {
  // statementsN
  // ...
}
else {
  // statementsN+1
  // ...
}

тут

  • condition1, condition2, conditionN – умовні вирази. Якщо значення одного з умовних виразів рівне true, то виконується відповідний блок операторів. Усі інші блоки (гілки) операторів пропускаються. Наприклад, якщо condition2=true, то виконується тільки один блок операторів statement2;
  • statement1, statement2, statementN – один або декілька операторів, які виконуються, якщо відповідний умовний вираз рівний true. Якщо після деякого блоку if або else потрібно виконати тільки один оператор, то фігурні дужки { } не є обов’язкові.

 

5. Приклади використання оператора if (скорочена форма)
5.1. Абсолютне значення числа

Умова задачі. Дано дійсне число a, яке вводиться з клавіатури. Вивести на екран його абсолютну величину. У програмі не використовувати додаткових функцій.

Розв’язок.

fun main(args:Array<String>) {
  // Оператор if(...) { ... }

  // 1. Оголошення змінної a
  val a : Double

  // 2. Ввід значення a
  print("a = ")
  a = readLine().toString().toDouble()

  // 3. Вивід абсолютного значення
  // з допомогою скороченої форми оператора if
  if (a<0)
    println("abs(a) = " + (-a))
  if (a>=0)
    println("abs(a) = " + a)
}

Результат виконання програми

a = -8
abs(a) = 8

 

5.2. Обчислення суми чисел

Умова задачі. Дано чотири дійсних числа. Знайти суму тих чисел, які більше 10. Оператор циклу не використовувати.

Розв’язок.

fun main(args:Array<String>) {
  // Оператор if(...) { ... }

  // 1. Оголошення змінних
  val a : Double
  val b : Double
  val c : Double
  val d : Double
  var summ : Double = 0.0 // Шукана сума
  val Value : Double = 10.0 // число для порівняння

  // 2. Ввід чисел a, b, c, d
  print("a = "); a = readLine().toString().toDouble()
  print("b = "); b = readLine().toString().toDouble()
  print("c = "); c = readLine().toString().toDouble()
  print("d = "); d = readLine().toString().toDouble()

  // 3. Обчислення з використанням оператора if
  if (a>Value)
    summ += a
  if (b>Value)
    summ += b
  if (c>Value)
    summ += c
  if (d>Value)
    summ += d

  // 4. Вивід результату
  println("summ = " + summ)
}

Результат виконання програми

a = 15
b = 5
c = 6
d = 11
summ = 26.0

 

6. Приклади використання оператора if-else (повна форма)
6.1. Визначення суми цифр числа

Задано двозначне число. Визначити, чи сума цифр його є двозначним числом. Наприклад, для числа 78 сума цифр рівна 15, отже, відповідь “Так”.

Розв’язок.

fun main(args:Array<String>) {
  // Оператор if-else

  // 1. Оголошення змінних
  val num : Int   // Задане число

  // 2. Ввід числа num
  print("num = ")
  num = readLine().toString().toInt()

  // 3. Обчислення
  // 3.1. Перевірка, чи число двохзначне
  if ((num<10) || (num>99))
  {
    println("Incorrect input.")
    return
  }

  // 3.2. Обчислити суму цифр числа
  val sum = (num % 10 + num / 10)

  // 3.3. Вивести результат
  if (sum > 9)
    println("Yes")
  else
    println("No")
}

Результат виконання програми

num = 57
Yes

 

6.2. Перевірка виконання нерівності

Умова задачі. Задано три числа a, b, c. Перевірити, чи виконується нерівність a<b<c.

Розв’язок.

fun main(args:Array<String>) {
  // Оператор if-else

  // 1. Оголошення змінних
  val a : Int
  val b : Int
  val c : Int

  // 2. Ввід чисел a, b, c
  print("a = ")
  a = readLine().toString().toInt()

  print("b = ")
  b = readLine().toString().toInt()

  print("c = ")
  c = readLine().toString().toInt()

  // 3. Обчислення та вивід результату
  if ((a<b) && (a<c))
    println("a<b<c => true")
  else
    println("a<b<c => false")
}

Результат виконання програми

a = 5
b = 9
c = 12
a<b<c =>   true

 

7. Приклади використання оператора if-else-if (сходинкова форма)
7.1. Визначення меншої відстані

Умова задачі. Відомі дві відстані: одна в кілометрах, інша в футах (1 фут = 0.45 м). Яка з відстаней менше а яка більше? Опрацювати всі можливі варіанти.

Розв’язок.

fun main(args:Array<String>) {
  // Оператор if-else-if

  // 1. Оголошення змінних
  val lenKm : Double // відстань в кілометрах
  val lenFt : Double // відстань в футах (1 фут = 0.45 м)

  // 2. Ввід відстаней
  print("Відстань в кілометрах: lenKm = "); 
  lenKm = readLine().toString().toDouble()
  print("Відстань в футах: lenFt = "); 
  lenFt = readLine().toString().toDouble()

  // 3. Обчислення. Використовується оператор if-else-if
  if (lenKm*1000 > lenFt*0.45) // Привести всі відстані до метрів
    println("lenKm > lenFt")
  else
  if (lenKm*1000 < lenFt*0.45)
    println("lenKm < lenFt")
  else
    println("lenKm == lenFt")
}

Результат виконання програми

Відстань в кілометрах: lenKm = 0.9
Відстань в футах: lenFt = 2000
lenKm == lenFt

 

7.2. Визначення номеру чверті на площині

Умова задачі. Вивести на екран номер чверті координатної площини, якій належить точка з координатами (x, y), при умові, що x0 та y0.

fun main(args:Array<String>) {
  // Оператор if-else-if

  // 1. Оголошення змінних
  val x : Double
  val y : Double

  // 2. Ввід значень x, y
  print("x = ")
  x = readLine().toString().toDouble()

  print("y = ")
  y = readLine().toString().toDouble()

  // 3. Обчислення та вивід результату
  if ((x==0.0) || (y==0.0)) {
    println("Incorrect input")
    return
  }

  if ((x>0) && (y>0))
    println("1")
  else
  if ((x>0) && (y<0))
    println("4")
  else
  if ((x<0) && (y>0))
    println("2")
  else
    println("3")
}

Результат виконання програми

x = 5
y = -2
4

 


Споріднені теми