this repo has no description
1* Control Flow
2
3** Conditional expressions
4
5Kotlin provides =if= and =when= for checking conditional expressions
6
7*** When
8
9Use =when= when you have a conditional expressions with multiple branches.
10=when= can be used either as a statement or as an expression.
11
12Heres how to use:
13
14+ Place the conditional expression within parentheses =()= and the actions to take within curly braces ={}=
15+ Use =->= in each branch to separate each condition from each action
16
17 #+begin_src kotlin
18 val obj = "Hello"
19
20 when (obj) {
21 "1" -> println("One")
22 "Hello" -> println("Greeting")
23 else -> println("Unknown")
24 }
25 #+end_src
26
27#+RESULTS:
28: Greeting
29
30Here's an example of using =when= as an expression, the syntax is assigned immediately to a variable:
31
32#+begin_src kotlin
33 val result = when (obj) {
34 "1" -> "One"
35 "Hello" -> "Greeting"
36 else -> "Unknown"
37 }
38
39 println(result)
40#+end_src
41
42#+RESULTS:
43: Greeting
44
45If =when= is used as an expression, the else branch is mandatory, unless the compiler can detect
46that all possible cases are covered by the branch conditions.
47
48The previous example showed that =when= is useful for matching a variable.
49=when= is also useful when you need to check a chain of Boolean expressions
50
51#+begin_src kotlin
52 val temp = 18
53
54 val description = when {
55 temp < 0 -> "very cold"
56 temp < 10 -> "a bit cold"
57 temp < 20 -> "warm"
58 else -> "hot"
59 }
60
61 println(description)
62#+end_src
63
64#+RESULTS:
65: warm
66
67
68** Ranges
69
70The most commom way to create a range in Kotlin is to use the =..= operator.
71For example, =1..4= is equivalent to =1, 2, 3, 4=.
72
73To declare a range that doesn't include the end value, use the =..<= operator.
74For example, =1..<4= is equivalent to =1, 2, 3=.
75
76To declare a range in reverse order, use =downTo=.
77For example, =4 downTo 1= is equivalent to =4, 3, 2, 1=.
78
79To declare a range that increments in a step, use =step= and the desired increment value.
80For example, =1..5 step 2= is equivalent to =1, 3, 5=.
81
82You can also do the same with =Char= ranges:
83
84+ ='a'..'d'= = ='a', 'b', 'c', 'd'=
85+ ='z' downTo 's' step 2= = ='z', 'x', 'v', 't'=