Путь наивного к мастерству.

                          ✯ Table of content ✯                            
★ What are control flows:
★ if-else Expression:
★ When Expression :
★ For Loop :
★ While and do-while  Loop :
                             ★THANK YOU★

Что такое потоки управления:

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

В этой статье мы поговорим о следующем потоке управления в kotlin:

  • if-else выражение
  • when выражение
  • For петли
  • while и do…while циклов

если-иначе выражение:

// if - as statement - no return value
// else - optional
val num1 = 90
if (num1 % 2 == 0) {
    println("$num1 is even")
}
else {
    println("$num1 is odd")
}
println("------")

//output will be 
//90 is even
//------

Приведенный выше фрагмент кода является традиционным примером оператора if-else, здесь else также может быть необязательным.

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

// if - as expression - return value
// else is mandatory
val num2 = 20
val num1 = 10
// ternaray operator - num1 > num2 ? num1 : num2

val max = if ( num1 > num2) num1 else num2 // no ternary operator in Kotlin
println("Max: $max")

В Kotlin мы можем использовать if как выражение, чтобы оно возвращало значение. Это все равно, что сказать: «if num1 is greater than num2 return num1 else return число2 ». При использовании if-else в качестве выражения блок else необязателен.

Когда выражение:

Kotlin when выражение очень похоже на оператор switch control, который можно найти в C или Java с точки зрения основных функций.
Однако kotlin делает шаг вперед.

// when - replacement  for switch - case

var marks : Any = 30

when(marks){
    is String -> println("invalid marks")
    100 -> println("EXCELLENT")
    in 75..99 -> { println("Distinction")}
    in 65..74 -> println("First class")
    in 55..64 -> println("Second class")
    in 35..54 -> println("Third class")
    !in 20..29 -> println("below Third")

    else -> {
        println("None of the branches matched")
        println("Failed")
    }
}

when последовательно сопоставляет свой аргумент со всеми своими ветвями до тех пор, пока не будет выполнено какое-либо условие ветвления, если это так, то выполнение передается в ветвь. else ветвь оценивается, если ни одна из других ветка условия выполняются .

  • when может использоваться как выражение или оператор, аналогичный if-else
  • when as выражение значение первой соответствующей ветви становится значением общего выражения.
  • whenas все значения ветвей игнорируются.
  • Мы также можем использовать in и !inдля проверки значения в заданном диапазоне или коллекции.
  • Точно так же мы все можем проверить, относится ли значение к определенному типу или нет, используя is и !is .

Область действия переменной, представленной в теме when, ограничена телом этого when.

Для цикла:

Цикл for полезен в ситуациях, когда вы хотите просмотреть фиксированный диапазон чисел или каждый элемент в массиве, коллекции или диапазоне.

val ArrayListOfNames = arrayListOf<String>("nameA","nameB","nameC") // mutable

//below is the simple syntax to loop over each element of the array  
for(name in ArrayListOfNames){
    print(name)
}
//The above thing can also be done using a foreach loop
mutableArrayListOfNames.forEach {
    println(it)
}
  • Для перебора диапазона чисел .
for(x in 0..10){
    println(x)
}

for(x in 0 until 10){
    println(x)
}

Обратите внимание, что оператор .. включает конечное число в свой диапазон. Если вы хотите исключить его, вы должны заменить оператор .. на until.

  • Использует downTo для изменения диапазона.
for(x in 10 downTo 0 step 2){
    println("$x ")
}
// 10 8 6 4 2 0
  • Шаг пользователя для пропуска номера - это диапазон.
for(x in 0 until 10 step 2){
    println("$x ")
}
// 0 2 4 6 8
  • Мы можем даже просмотреть индекс и значение массива, используя функцию withIndexliberary.
val array = arrayOf("a", "b", "c")
for ((index, item) in array.withIndex()) {
    println("Index $index has item $item")
}

Цикл while и do-while:

В циклах while и do-while их блок кода выполняется непрерывно, пока выполняется их условие. Разница между ними видна только во время условного теста:

  • while проверяет условие и, если оно выполнено, выполняет блок кода, а затем перепроверяет условие
  • do-while, с другой стороны, сначала выполняет блок кода, а затем проверяет условие. Если условный тест выполнен, цикл повторяется.

Тело do-while выполняется хотя бы один раз независимо от условия

//do-while loop
var x = 6
do {
    print("$x ")
    x++
} while(x <= 5)
// o/p - 6


//while 
val x = 6
while(x<=5){
    print("$x ")
}
// no output since the conditional test fails .

Это все, что касается изучения потоков управления в Kotlin. Мы проверили базовые версии большинства функций

✯ КОНЕЦ

★В следующей статье мы поговорим о функциях в kotlin.

★СПАСИБО★