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)
|