Returns, Jumps and Labels in Kotlin

10 Nov, 2021
Kotlin is a statically typed, general-purpose programming language developed by JetBrains, that has built world-class IDEs like IntelliJ IDEA, PhpStorm, Appcode, etc. It was first introduced by JetBrains in 2011 and a new language for the JVM. Kotlin is an object-oriented language, and a “better language” than Java, but still be fully interoperable with Java code. As the Kotlin says: Kotlin has three structural jump expressions as follow:
returnbreakcontinue
return
break
continue
These can be a part of the large expression as Kotlin say. So, let’s start with “return”.
It’s a statement that generally we use in functions during declaration for returning the values after execution of a function. By default it returns from the nearest enclosing function or anonymous function. Let’s take an example,
Example:
Kotlin
fun add(a:Int,b:Int) : Int {   // ans having final value after execution   val ans = a + b    // here we have returned it   return ans  } fun main(args: Array<String>) {      val first: Int = 10    val second: Int = 20    // called function and     // Collected the returned value in sum    val sum = add(first,second)    println("The sum is: $sum")}
Another use of return
Kotlin
fun GfG() {    listOf(1, 2, 3, 4, 5).forEach {        // non-local return directly          // to the caller of GfG()        if (it == 3) return         print(it)    }    println("this point is unreachable")}
So, that’s how the return statement work.
2.1. break
A break statement is used to terminate the flow of a loop. but only terminates the nearest enclosing loop i.e. if you are having two nested for-loops and the break statement is present in the inner for-loop then the inner for-loop will be terminated first and after that, if another break is added then the outer for-loop will also be terminated.
Example:
Kotlin
fun main(args : Array<String>){    for(ch in 'A'..'C'){    // Outer loop        for (n in 1..4){     // Inner loop            println("processing...")            if(n == 2)     // it will terminate Inner loop                break        }        if(ch == B)            break     // but it will terminate Outer loop    }}
We can also optimize the above code or reduce the line of code as well, using labels. 
2.2. labels
Any expression in Kotlin may be marked with a label. Labels have the form of an identifier followed by the @ sign, such as name@ or xyz@. To label an expression, just add a label in front of it.
Example:
Kotlin
fun main(args : Array<String>){   Outerloop@ for(ch in 'A'..'C'){    // Outer loop        for (n in 1..4){     // Inner loop            println("processing...")            if(n == 2)     // it will terminate Outerloop directly                break@Outerloop        }        // here we don't need it       /*            if(ch==B)                break        */    }}
2.3. continue
It is the same as the break statement but the only difference is, the break statement terminates the whole iteration of a loop whereas continuing skips the current iteration and we can use labels here as well. 
Example:
Kotlin
fun main(args: Array<String>) {    // outerloop is label name     outerloop@ for (i in 1..5) {        for (j in 1..4) {            if (i == 3 || j == 2)                // here we have used that                continue@outerloop             println("Happy Diwali!")        }    }}
That’s all about return, jump, and labels. 
Kotlin Control-flow
Picked
Kotlin
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Add Views Dynamically and Store Data in Arraylist in Android?
How to Communicate Between Fragments in Android?
Retrofit with Kotlin Coroutine in Android
Suspend Function In Kotlin Coroutines
How to Get Current Location in Android?
Kotlin extension function
Dagger Hilt in Android with Example
Kotlin Sealed Classes
Scopes in Kotlin Coroutines
Singleton Class in Kotlin