본문 바로가기
2학년 2학기/모바일 소프트웨어 - 코틀린

Kotlin_Basic03 - when(1)

by kkkkk1023 2024. 9. 20.

코틀린에서 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은 값을 반환하지 않고 단순히 조건에 따른 동작만 수행한다.