Kotlin if else operator

Оператор условного перехода if-else . Виды операторов условного перехода

В языке программирования Kotlin существуют средства, изменяющие вычислительный процесс в зависимости от выполнения некоторого условия. К таким средствам относится оператор if-else .

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

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) <  // Оператор if(. )  // 1. Объявление переменной a val a : Double  // 2. Ввод значения a  print("a color: #808080;"> // 3. Вывод абсолютного значения // с помощью сокращенной формы оператора if if (a0) println("abs(a) color: #000080;">if (a>=0) println("abs(a) color: #333300;">⇑ 
5.2. Вычисление суммы чисел

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

Решение.

fun main(args:Array) <  // Оператор 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 color: #008000;">"b color: #008000;">"c color: #008000;">"d color: #808080;"> // 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 color: #333300;">⇑ 
6. Примеры использования оператора if-else (полная форма)
6.1. Определение суммы цифр числа

Дано двузначное число. Определить, есть ли сумма цифр числа двузначным числом. Например, для числа 78 сумма цифр равна 15, значит, ответ «Да».

Решение.

fun main(args:Array) <  // Оператор if-else // 1. Объявление переменных val num : Int // Указанное число // 2. Ввод числа num  print("num color: #808080;"> // 3. Вычисление // 3.1. Проверка, двузначное ли число if ((num10) || (num>99)) < println("Incorrect input.") return  >  // 3.2. Вычислить сумму цифр числа  val sum = (num % 10 + num / 10)  // 3.3. Вывести результат if (sum > 9) println("Yes")  else  println("No") >

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

6.2. Проверка выполнения неравенства

Условие задачи.

Заданы три числа a , b , c . Проверить, выполняется ли неравенство abc .

fun main(args:Array) <  // Оператор if-else // 1. Объявление переменных val a : Int val b : Int val c : Int  // 2. Ввод чисел a, b, c  print("a color: #008000;">"b color: #008000;">"c color: #808080;"> // 3. Вычисление и вывод результата if ((a println("a true")  else  println("a false") >

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

7. Примеры использования оператора if-else-if (лестничная форма)
7.1. Определение меньшего расстояния

Условие задачи. Известны два расстояния: одно в километрах, другое в футах (1 фут = 0.45 м). Какое из расстояний меньше а какое больше? Проработать все возможные варианты.

fun main(args:Array) < // Оператор if-else-if  // 1. Объявление переменных val lenKm : Double // расстояние в километрах  val lenFt : Double // расстояние в футах (1 фут = 0.45 м) // 2. Ввод расстояний print("Расстояние в километрах: lenKm color: #008000;">"Расстояние в футах: lenFt color: #808080;"> // 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) <  // Оператор if-else-if // 1. Объявление переменных val x : Double val y : Double  // 2. Ввод значений x, y  print("x color: #008000;">"y color: #808080;"> // 3. Вычисление и вывод результата if ((x==0.0) || (y==0.0)) < println("Incorrect input") return  > if ((x>0) && (y>0)) println("1")  else if ((x>0) && (y0)) println("4")  else if ((x0) && (y>0)) println("2")  else  println("3") >

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

Похожие темы

Источник

Выражение if-else в Kotlin

Наиболее распространенным способом управления порядком выполнения программы является использование выражения if , которое указывает программе на выполнение определенного действия при определенном условии.

Пример использования if

Рассмотрим следующий пример:

Это простое выражение if . Если условие истинно, то выражение выполнит код между фигурными скобками. Если условие ложно, то выражение не будет выполнять данный код. Все просто!

Термин выражение if используется здесь вместо оператора if, поскольку, в отличие от многих других языков программирования, в Kotlin значение возвращается из выражения if . Возвращаемое значение является значением последнего выражения в блоке if .

От вас не требуется использовать возвращаемое значение или присваивать его переменной. Подробнее о возврате значения будет рассказано ниже.

Пример использования else

Вы можете расширить выражение if , чтобы указать действия для случая, когда условие ложное. Это называется условием else. К примеру:

Здесь, если константа animal была бы равна "Кошка" или "Собака" , тогда выражение выполняет первый блок кода. Если константа animal не равна ни "Кошка" , ни "Собака" , тогда выражение выполняет блок внутри else от if выражения, выводя на консоль следующее:

Также можно использовать выражение if-else в одну строку. Рассмотрим, как это поможет сделать код более кратким и читабельным .

Если нужно определить минимальное и максимальное значение из двух переменных, можно использовать выражение if следующим образом:

На данный момент вам должно быть понятно, как это работает, но здесь используется довольно много кода. Взглянем, как можно улучшить код через использование выражения if-else , которое возвращает значение.

Просто уберем скобки и поместим все в одну строку следующим образом:

Так намного проще! Это пример идиоматического кода, который означает, что код пишется ожидаемым образом для определенного языка программирования. Идиомы не только улучшают код, но и позволяют другим разработчикам, знакомым с языком, быстро понять чужую программу.

На заметку: Так как поиск большего или меньшего из двух чисел является очень распространенной операцией, стандартная библиотека Kotlin предоставляет для этой цели две функции: max() и min() . Наверняка в прошлых уроках вы уже встречали их.

Применение выражения else-if

Выражения if можно использовать более эффективно. Иногда нужно проверить одно условие, затем другое. Здесь вступает в игру else-if , встраивая другое выражение if в условие else предыдущего условия if .

Вы можете использовать else-if следующим образом:

Данные вложения if проверяют несколько условий одно за другим, пока не будет найдено истинное условие. Выполняется только тело-if, связанный с первым истинным условием, независимо от того, истинны ли последующие условия else-if . Другими словами, важен порядок ваших условий.

В конце можно добавить вложение else для обработки случая, когда ни одно из условий не выполняется. Если условие else не нужно, его можно не использовать. В этом примере оно требуется, чтобы гарантировать, что константа timeOfDay обладает допустимым значением ко времени его вывода.

В данном примере выражение if принимает число, являющееся временем, и преобразует его в строку, представляющую часть дня, которой принадлежит время. При работе в 24-часовом формате условия проверяются в следующем порядке, по одному пункту за раз:

  • Сначала проверяется, если время меньше 6. Если так, значит, это раннее утро;
  • Если время не меньше 6, тогда выражение продолжается до первого условия else-if , где проверяется, является ли время меньше 12;
  • Когда условие оказывается ложным, выражение проверяет, является ли время меньше 17, затем меньше ли 20, затем меньше ли 24;
  • В конечном итоге, если время за пределами диапазона, выражение возвращает недействительное значение.

В коде выше константа hourOfDay равна 12 . Следовательно, код выведет следующее:

Источник

Читайте также:  Last version python debian
Оцените статью