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), при условии, что x≠0 и y≠0.

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

 


Похожие темы