코틀린의 Control Flow에는 조건문과 반복문으로 나누어 진다.
*조건문에는 if와 when이 존재한다. 이 중에서 코틀린은 when을 사용하는 것을 추천한다.
if
다른 언어들과 동일한 사용 방식.
val d: Int
val check = true
if (check) {
d = 1
} else {
d = 2
}
println(d)
// 1
* (check) 안에 들어갈 조건문의 결과가 항상 참 또는 거짓 이여야 함.
코틀린은 다른 언어와 다르게 삼항연산자가 없다
대신
val a = 1
val b = 2
println(if (a > b) a else b) // Returns a value: 2
이런 식으로 표현이 가능하다.
When
- if와 달리 조건문에 식이 아닌 조건을 검사할 값이 들어간다.
- 여러 개의 분기 조건문을 지원(switch case문과 비슷)한다.
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을 추천하는 이유
- 가독성이 좋다.
- 여러 가지 분기 처리를 통해 명확한 표현이 가능하다.
- 표현식으로 사용이 가능하다.
val result = when (value) {
1 -> "One"
2 -> "Two"
else -> "Other"
}
- 다양한 조건 처리가 가능하다.(값의 범위, 타입 검사 등)
val result = when {
value in 1..10 -> "Between 1 and 10"
value is String -> "It's a String"
else -> "Other"
}
- 타입 검사와 스마트 캐스팅 -> 안전성과 간결성을 높임
fun describe(obj: Any): String =
when (obj) {
is Int -> "An integer: $obj"
is String -> "A string of length ${obj.length}"
is List<*> -> "A list of length ${obj.size}"
else -> "Unknown"
}
- 기본값 설정이 가능하다.(switch case의 default 처럼)
'kotlin' 카테고리의 다른 글
[kotlin 입문] Functions 알아보기 (0) | 2024.08.08 |
---|---|
[kotlin 입문] range 사용 방법 (0) | 2024.08.07 |
[kotlin 입문] collection 알아보기(Sets, Maps) (0) | 2024.07.31 |
[kotlin 입문] collection 알아보기 (0) | 2024.07.30 |
[kotlin 입문] 변수 알아보기(Int, String, 타입 추론) (0) | 2024.07.30 |