* Create control_flow.md * Rename control_flow.md to controlflow.md * Added control flow * Added classes * fix: corrected indentation * fix: corrected indentation
		
			
				
	
	
		
			90 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Control Flow
 | |
| ---
 | |
| 
 | |
| # Control Flow
 | |
| 
 | |
| ### Basic Usage
 | |
| 
 | |
| #### If Expression
 | |
| 
 | |
| `if` can be used in same way as in other programming languages
 | |
| ```kotlin
 | |
| var min: Int
 | |
| if (a < b) {
 | |
|   min = a
 | |
| } else {
 | |
|   min = b
 | |
| }
 | |
| ```
 | |
| 
 | |
| `else` can also be omitted if not needed
 | |
| ```kotlin
 | |
| if (a < b) {
 | |
|   print("a is smaller")
 | |
| }
 | |
| ```
 | |
| 
 | |
| #### When Expression
 | |
| 
 | |
| `when` keyword is replacing usual `switch-case` expression  
 | |
| The else branch is evaluated if none of the other branch conditions are satisfied  
 | |
| It has powerfull matching branches which support complex evaluations of input argument  
 | |
| ```kotlin
 | |
| when (obj) {
 | |
|   1          -> "One"
 | |
|   1, 2       -> "One or Two"
 | |
|   "Hello"    -> "Greeting"
 | |
|   is Long    -> "Long"
 | |
|   !is String -> "Not a string"
 | |
|   else       -> "Unknown"
 | |
| }
 | |
| ```
 | |
| 
 | |
| Range evaluation
 | |
| ```kotlin
 | |
| when (x) {
 | |
|   in 1..100 -> print("x is in the range")
 | |
|   in validNumbers -> print("x is valid")
 | |
|   !in 10..200 -> print("x is outside the range")
 | |
|   else -> print("none of the above")
 | |
| }
 | |
| ```
 | |
| 
 | |
| #### For Loops
 | |
| 
 | |
| `for` loop can iterate through anything that provides and interator, using `in` operator
 | |
| ```kotlin
 | |
| val fruits = listOf("apple", "banana", "kiwi")
 | |
| for (fruit in fruits) {
 | |
|   println(fruit)
 | |
| }
 | |
| ```
 | |
| 
 | |
| Iterating through range of numbers
 | |
| ```kotlin
 | |
| for (i in 1..5) {
 | |
|   println(i)
 | |
| }
 | |
| ```
 | |
| 
 | |
| #### While Loops
 | |
| 
 | |
| `while` and `do..while` are used like in most programming languages
 | |
| ```kotlin
 | |
| while (a > 0) {
 | |
|   a--
 | |
| }
 | |
| 
 | |
| do {
 | |
|   val b = provideData()
 | |
| } while (b != null)
 | |
| ```
 | |
| 
 | |
| #### Break and continue keywords
 | |
| Used like in most other programming languages
 | |
| 
 | |
| #### Resources
 | |
| * [Basic Syntax Reference](https://kotlinlang.org/docs/reference/basic-syntax.html)
 | |
| * [Kotlin Control Flow Reference](https://kotlinlang.org/docs/reference/control-flow.html)
 |