코드 여행 일기
코틀린의 when 문: 다중 조건 처리의 강력한 도구 본문
코틀린(Kotlin)은 그 간결하고 현대적인 문법 덕분에 많은 개발자들 사이에서 인기를 얻고 있습니다.
코틀린을 배우는 과정에서 중요한 개념 중 하나가 바로 조건문입니다.
특히 when 문은 다중 조건을 처리하는 데 매우 유용한 도구입니다.
이번 포스트에서는 코틀린의 when 문과 그 사용 방법에 대해 자세히 알아보겠습니다.
기본 when 문
코틀린의 when 문은 여러 조건을 검사하고, 각 조건에 따라 다른 코드를 실행할 수 있습니다. 기본적인 형태는 다음과 같습니다:
val x = 2
when (x) {
1 -> println("x는 1입니다.")
2 -> println("x는 2입니다.")
3 -> println("x는 3입니다.")
else -> println("x는 1, 2, 3 중 하나가 아닙니다.")
}
위 코드에서 x의 값이 2이므로 "x는 2입니다."가 출력됩니다.
여러 조건을 한 번에 검사
when 문은 여러 조건을 콤마로 구분하여 한 번에 검사할 수 있습니다:
val x = 3
when (x) {
1, 2 -> println("x는 1 또는 2입니다.")
3, 4 -> println("x는 3 또는 4입니다.")
else -> println("x는 1, 2, 3, 4 중 하나가 아닙니다.")
}
위 코드에서는 x가 3이므로 "x는 3 또는 4입니다."가 출력됩니다.
조건에 표현식 사용
when 문에서 조건으로 표현식을 사용할 수 있습니다:
val x = 15
when {
x % 2 == 0 -> println("x는 짝수입니다.")
x % 2 != 0 -> println("x는 홀수입니다.")
}
위 코드에서는 x가 15이므로 "x는 홀수입니다."가 출력됩니다.
when 문을 표현식으로 사용
when 문을 표현식으로 사용하여 값을 반환할 수 있습니다:
val x = 5
val description = when (x) {
1 -> "하나"
2 -> "둘"
3 -> "셋"
4 -> "넷"
else -> "알 수 없는 값"
}
println("x는 $description 입니다.")
위 코드에서는 x가 5이므로 description에는 "알 수 없는 값"이 할당되고, "x는 알 수 없는 값 입니다."가 출력됩니다.
타입 검사와 스마트 캐스팅
when 문은 타입 검사와 스마트 캐스팅을 지원합니다:
fun describe(obj: Any): String =
when (obj) {
is Int -> "정수입니다."
is String -> "문자열입니다. 길이는 ${obj.length}입니다."
is Boolean -> if (obj) "참입니다." else "거짓입니다."
else -> "알 수 없는 타입입니다."
}
println(describe(123)) // 출력: 정수입니다.
println(describe("Hello")) // 출력: 문자열입니다. 길이는 5입니다.
println(describe(true)) // 출력: 참입니다.
println(describe(3.14)) // 출력: 알 수 없는 타입입니다.
위 코드에서는 describe 함수가 다양한 타입의 객체를 받아서 그 타입에 따라 다른 설명을 반환합니다.
언제 when 문을 사용할까?
- 여러 조건을 처리: 여러 조건을 간단하고 명료하게 처리하고 싶을 때 사용합니다.
- 조건에 따른 값 반환: 조건에 따라 다른 값을 변수에 할당하거나 반환하고 싶을 때 유용합니다.
- 타입 검사: 객체의 타입에 따라 다른 처리를 하고 싶을 때 사용합니다.
코틀린의 when 문은 다양한 조건을 간단하게 처리할 수 있는 강력한 도구입니다.
이를 통해 코드가 더욱 간결하고 읽기 쉽게 작성될 수 있습니다.
이 포스트가 코틀린의 when 문을 이해하는 데 도움이 되길 바랍니다.
'코딩 > kotlin' 카테고리의 다른 글
코틀린의 while 문: 기초부터 응용까지 (0) | 2024.05.28 |
---|---|
코틀린의 for 문: 반복 작업의 강력한 도구 (1) | 2024.05.27 |
코틀린의 if 문: 조건문부터 표현식까지 (0) | 2024.05.25 |
코틀린의 산수 연산자 (0) | 2024.05.24 |
코틀린의 val과 var: 무엇을 선택해야 할까? (0) | 2024.05.23 |