코틀린에서 when 문법은 조건에 따라 여러 분기처리를 할 수 있는 강력한 제어 구조이다.
when은 switch 문과 비슷하지만 더 유연하고 강력하게 사용할 수 있다. 주로 값을 매칭하거나 조건을 검사할 때 사용된다.
기본 형태
val value = 2
val result = when (value) {
1 -> "One"
2 -> "Two"
3 -> "Three"
else -> "Unknown"
}
print(result) // Two
- value가 1일 경우 "One", 2일 경우 "Two", 3일 경우 "Three"를 반환하고, 그 외의 값은 "Unknown"을 반환한다.
- else는 기본적인 값을 처리할 때 사용되며, 반드시 포함해야 한다(모든 경우의 수를 처리하지 않을 경우).
여러 조건 처리
: when문에서 여러 값을 하나로 처리할 수 있다.
val result = when (value) {
1, 2 -> "One or Two"
in 3..5 -> "Three to Five"
else -> "Other"
}
- 1, 2는 동일한 처리를 하고, 3부터 5까지의 값은 in 연산자를 통해 범위로 처리할 수 있다.
조건식 사용
: when에서 특정 조건을 설정할 수도 있다.
val result = when {
value < 0 -> "Negative"
value == 0 -> "Zero"
value > 0 -> "Positive"
else -> "Unknown"
}
- value에 대해 조건식을 사용하여 값을 처리할 수 있다.
타입 검사
: when은 타입 검사와 캐스팅에도 유용하다.
fun describe(obj: Any): String =
when (obj) {
is String -> "String"
is Int -> "Integer"
else -> "Unknown"
}
- 객체의 타입에 따라 다른 처리를 할 수 있으며, is 키워드를 통해 타입을 검사하고 자동으로 캐스팅할 수 있다.
반환값이 없는 when
: 반환값 없이 단순히 조건에 따라 분기 처리만 할 수도 있다.
when (value) {
1 -> println("One")
2 -> println("Two")
else -> println("Other")
}
- 이 경우 when은 값을 반환하지 않고 단순히 조건에 따른 동작만 수행한다.
'2학년 2학기 > 모바일 소프트웨어 - 코틀린' 카테고리의 다른 글
Class(1) - 클래스 선언과 생성자 (0) | 2024.09.30 |
---|---|
Kotlin_Basic03 - when(2) (0) | 2024.09.20 |
Kotlin_Basic03 - null 처리 (0) | 2024.09.20 |
Kotlin_Basic03 - if 식 (0) | 2024.09.20 |
Kotlin_Basic03 - 연산자 오버로딩 (0) | 2024.09.20 |