Котлин - поток управления

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

Если еще

Котлин - это функциональный язык, следовательно, как и любой функциональный язык Котлина. “if”это выражение, а не ключевое слово. Выражение“if”при необходимости вернет значение. Как и другие языки программирования,“if-else”block используется как начальный оператор условной проверки. В следующем примере мы сравним две переменные и предоставим требуемый результат соответственно.

fun main(args: Array<String>) {
   val a:Int = 5
   val b:Int = 2
   var max: Int
   
   if (a > b) {
      max = a
   } else {
      max = b
   }
   print("Maximum of a or b is " +max)
 
   // As expression 
   // val max = if (a > b) a else b
}

Приведенный выше фрагмент кода дает в браузере следующий результат. В нашем примере также есть еще одна строка кода, в которой показано, как использовать“If” заявление как выражение.

Maximum of a or b is 5

Использование когда

Если вы знакомы с другими языками программирования, то, возможно, слышали об операторе переключения термина, который по сути является условным оператором, когда к определенной переменной можно применить несколько условий. “when”Оператор сопоставляет значение переменной с условиями перехода. Если он удовлетворяет условию ветвления, он выполнит оператор внутри этой области. В следующем примере мы узнаем больше о «когда» в Kotlin.

fun main(args: Array<String>) {
   val x:Int = 5
   when (x) {
      1 -> print("x = = 1")
      2 -> print("x = = 2")
      
      else -> { // Note the block
         print("x is neither 1 nor 2")
      }
   }
}

Приведенный выше фрагмент кода дает в браузере следующий результат.

x is neither 1 nor 2

В приведенном выше примере компилятор Kotlin соответствует значению xс данными ветками. Если он не соответствует ни одной из ветвей, он выполнит часть else. Фактически, when эквивалентно множественному блоку if. Kotlin предоставляет разработчику еще одну гибкость, при которой разработчик может предоставить несколько проверок в одной строке, указав «,» внутри проверок. Модифицируем приведенный выше пример следующим образом.

fun main(args: Array<String>) {
   val x:Int = 5
   when (x) {
      1,2 -> print(" Value of X either 1,2")
      
      else -> { // Note the block
         print("x is neither 1 nor 2")
      }
   }
}

Выполните то же самое в браузере, и в браузере будет получен следующий результат.

x is neither 1 nor 2

Для петли

Цикл - это такое изобретение, которое обеспечивает гибкость для итерации по любой структуре данных. Как и другие языки программирования, Kotlin также предоставляет множество видов методологии зацикливания, однако среди них“For”самый удачный. Реализация и использование цикла For концептуально аналогичны циклу for в Java. В следующем примере показано, как мы можем использовать то же самое в реальных примерах.

fun main(args: Array<String>) {
   val items = listOf(1, 2, 3, 4)
   for (i in items) println("values of the array"+i)
}

В приведенном выше фрагменте кода мы объявили один список с именем «items» и, используя цикл for, перебираем этот определенный список и выводим его значение в браузере. Ниже приводится результат.

values of the array1
values of the array2
values of the array3
values of the array4

Ниже приводится еще один пример кода, в котором мы используем некоторую библиотечную функцию, чтобы упростить работу по разработке, чем когда-либо прежде.

fun main(args: Array<String>) {
   val items = listOf(1, 22, 83, 4)
   
   for ((index, value) in items.withIndex()) {
      println("the element at $index is $value")
   }
}

После того, как мы скомпилируем и выполним приведенный выше фрагмент кода в нашей среде кодирования, он даст следующий результат в браузере.

the element at 0 is 1
the element at 1 is 22
the element at 2 is 83
the element at 3 is 4

Цикл while и цикл Do-While

Пока и Do-While работают точно так же, как и в других языках программирования. Единственная разница между этими двумя циклами заключается в том, что в случае цикла Do-while условие будет проверено в конце цикла. В следующем примере показано использованиеWhile loop.

fun main(args: Array<String>) {
   var x:Int = 0
   println("Example of While Loop--")
   
   while(x< = 10) {
      println(x)
      x++
   } 
}

Приведенный выше фрагмент кода дает в браузере следующий результат.

Example of While Loop--
0
1
2
3
4
5
6
7
8
9
10

В Kotlin также есть еще один цикл, называемый циклом Do-While, в котором тело цикла будет выполнено один раз, только тогда будет проверено условие. В следующем примере показано использованиеDo-while loop.

fun main(args: Array<String>) {
   var x:Int = 0
   do {
      x = x + 10
      println("I am inside Do block---"+x)
   } while(x <= 50)
}

Приведенный выше фрагмент кода дает в браузере следующий результат. В приведенном выше коде компилятор Kotlin выполнит блок DO, а затем перейдет к проверке условий в блоке while.

I am inside Do block---10
I am inside Do block---20
I am inside Do block---30
I am inside Do block---40
I am inside Do block---50
I am inside Do block---60

Использование Return, Break, Continue

Если вы знакомы с любым языком программирования, тогда вы должны иметь представление о различных ключевых словах, которые помогут нам реализовать хороший поток управления в приложении. Ниже приведены различные ключевые слова, которые можно использовать для управления циклами или любыми другими типами потока управления.

Return- Return - это ключевое слово, которое возвращает некоторое значение вызывающей функции из вызываемой функции. В следующем примере мы реализуем этот сценарий, используя нашу базу кодирования Kotlin.

fun main(args: Array<String>) {
   var x:Int = 10
   println("The value of X is--"+doubleMe(x))
}
fun doubleMe(x:Int):Int {
   return 2*x;
}

В приведенном выше фрагменте кода мы вызываем другую функцию и умножаем ввод на 2 и возвращаем результирующее значение вызываемой функции, которая является нашей основной функцией. Котлин определяет функцию иначе, что мы рассмотрим в следующей главе. На данный момент достаточно понять, что приведенный выше код сгенерирует следующий вывод в браузере.

The value of X is--20

Continue & Break- Продолжение и разрыв - наиболее важная часть логической задачи. Ключевое слово «break» завершает поток контроллера, если какое-либо условие не выполнено, а «continue» делает обратное. Вся эта операция происходит в непосредственной видимости. Kotlin умнее других языков программирования, в котором разработчик может использовать несколько меток для видимости. Следующий фрагмент кода показывает, как мы реализуем эту метку в Kotlin.

fun main(args: Array<String>) {
   println("Example of Break and Continue")
   myLabel@ for(x in 1..10) { // appling the custom label
      if(x = = 5) {
         println("I am inside if block with value"+x+"\n-- hence it will close the operation")
         break@myLabel //specifing the label
      } else {
         println("I am inside else block with value"+x)
         continue@myLabel
      }
   }
}

Приведенный выше фрагмент кода дает в браузере следующий результат.

Example of Break and Continue
I am inside else block with value1
I am inside else block with value2
I am inside else block with value3
I am inside else block with value4
I am inside if block with value5
-- hence it will close the operation

Как видите, контроллер продолжает цикл до тех пор, пока не будет установлено значение x равно 5. Как только значение x достигает 5, он начинает выполнение блока if, и как только достигается оператор break, весь поток управления завершает выполнение программы.