1. Control flow
- Conditional expressions
코틀린은 if 와 when 을 이용한 조건문 기능을 제공한다.
1) if
val d: Int
val check = true
if (check) {
d = 1
} else {
d = 2
}
println(d)
// 1
() 괄호 안의 조건과 그에 따른 행동을 {} 괄호 안에 작성한다. 조건문은 if - else 를 이용하여 구성한다.
val a = 1
val b = 2
println(if (a > b) a else b) // Returns a value: 2
코틀린은 삼항 연산자 'condition ? then : else' 를 제공하지 않는다. 대신 위의 예제와 같이 {} 괄호를 생략하고 한 줄로 조건문을 작성할 수 있다.
2) when
val obj = "Hello"
when (obj) {
// Checks whether obj equals to "1"
"1" -> println("One")
// Checks whether obj equals to "Hello"
"Hello" -> println("Greeting")
// Default statement
else -> println("Unknown")
}
// Greeting
when 은 다른 언어의 switch 문과 같이 조건에 따라 여러 분기로 나눠지는 조건문에 대한 문법이다. 위의 예제에서는 obj 의 값이 "1", "Hello", 그 외의 값인지에 따라 서로 다른 구문을 실행한다.
val temp = 18
val description = when {
// If temp < 0 is true, sets description to "very cold"
temp < 0 -> "very cold"
// If temp < 10 is true, sets description to "a bit cold"
temp < 10 -> "a bit cold"
// If temp < 20 is true, sets description to "warm"
temp < 20 -> "warm"
// Sets description to "hot" if no previous condition is satisfied
else -> "hot"
}
println(description)
// warm
when 문은 조건의 결과로 특정 값을 반환하도록 구현하는 것도 가능하다. 위의 예제에서는 when 문 내부의 결과를 반환하여 변수 description 에 저장하고 있다. 또한 특정 변수의 값에 따라서 분기를 나누는 것 뿐만 아니라 위의 예제와 같이 boolean 문을 이용해 분기를 나누는 것도 가능하다.
- Ranges
코틀린에서 숫자나 문자의 범위를 나타낼 때 '..', downTo 등과 같은 연산자를 사용한다. 이에 대한 예제는 다음과 같다.
1..4 // 1, 2, 3, 4
1..<4 // 1, 2, 3
4downTo1 // 4, 3, 2, 1
1..5step2 // 1, 3, 5
'a'..'d' // 'a', 'b', 'c', 'd'
'z'downTo's'step2 // 'z', 'x', 'v', 't'
- Loops
1) For
for (number in 1..5) {
// number is the iterator and 1..5 is the range
print(number)
}
// 12345
in 연산자를 통해 range 또는 collection 의 요소들을 하나씩 반복하며 반복문을 수행한다.
2) While
while 문은 while, do-while 두가지로 사용할 수 있다.
var cakesEaten = 0
var cakesBaked = 0
while (cakesEaten < 3) {
println("Eat a cake")
cakesEaten++
}
do {
println("Bake a cake")
cakesBaked++
} while (cakesBaked < cakesEaten)
// Eat a cake
// Eat a cake
// Eat a cake
// Bake a cake
// Bake a cake
// Bake a cake
[Reference]
- https://kotlinlang.org/docs/kotlin-tour-control-flow.html
'프로그래밍언어 > Kotlin' 카테고리의 다른 글
[Kotlin] 영역 함수 (Scope functions) (0) | 2024.08.22 |
---|---|
[Kotlin] 튜토리얼 따라가기 (5) (Null safety) (0) | 2024.07.31 |
[Kotlin] 튜토리얼 따라가기 (4) (Classes) (0) | 2024.07.29 |
[Kotlin] 튜토리얼 따라가기 (3) (Functions) (1) | 2024.07.26 |
[Kotlin] 튜토리얼 따라가기 (1) (Hello World, Variable, Collection) (2) | 2024.07.23 |