코틀린에서 조건문을 사용하는 방법에는 if
와 when
표현식이 있습니다. 이 두 가지를 적절히 활용하면 코드의 가독성과 효율성을 높일 수 있습니다. 이번 포스팅에서는 if
와 when
조건문을 사용하는 방법을 자세히 알아보겠습니다.
if
표현식
코틀린에서 if
는 단순한 조건문이 아닌 표현식으로 사용되며, 직접 값을 반환할 수 있습니다.
이는 코틀린의 주요 특징 중 하나로, if
문을 값으로 사용할 수 있어 코드가 더 간결해집니다.
자바스크립트 코드:
let a = 10;
let result;
if (a > 5) {
result = "a는 5보다 큽니다";
} else {
result = "a는 5보다 작거나 같습니다";
}
console.log(result);
코틀린 코드:
val a = 10
val result = if (a > 5) {
"a는 5보다 큽니다"
} else {
"a는 5보다 작거나 같습니다"
}
println(result)
코틀린에서는 if
와 when
문에서 중괄호를 사용하여 블록을 명확히 구분할 수 있습니다. 이 방법은 코드가 여러 줄일 때 유용합니다.
또한 코틀린에서는 블록이 한 줄로 작성될 경우 중괄호를 생략할 수 있습니다. 이를 통해 코드가 더 간결해질 수 있습니다.
중괄호 제거시:
val a = 10
val result = if (a > 5) "a는 5보다 큽니다" else "a는 5보다 작거나 같습니다"
println(result)
when
표현식
when
문은 코틀린에서 조건문을 처리하는 강력한 방법입니다. 자바스크립트의 switch
문과 유사하지만, 좀 더 유연하고 다양한 조건을 처리할 수 있습니다.
기본 사용법
val x = 2
val result = when (x) {
1 -> {
println("One")
// 추가 코드
}
2 -> {
println("Two")
// 추가 코드
}
else -> {
println("Unknown")
// 추가 코드
}
}
여러 값 처리
하나의 조건에서 여러 값을 동시에 처리할 수 있습니다.
val x = 2
val result = when (x) {
1, 2, 3 -> "x는 1, 2 또는 3입니다"
4 -> "x는 4입니다"
else -> "x는 다른 값입니다"
}
println(result)
조건식 처리
when
은 조건식을 포함할 수 있어 복잡한 로직을 간결하게 표현할 수 있습니다.
val x = 2
val result = when {
x < 0 -> "x는 음수입니다"
x == 0 -> "x는 0입니다"
x > 0 -> {
println("x는 양수입니다")
"양수"
}
else -> "알 수 없는 값입니다"
}
println(result)
복잡한 조건 처리
val x = 5
val result = when {
x % 2 == 0 && x > 0 -> "x는 양수의 짝수입니다"
x % 2 != 0 && x > 0 -> "x는 양수의 홀수입니다"
else -> "x는 음수이거나 0입니다"
}
println(result)
스마트 캐스트
스마트 캐스트(Smart Cast)는 Kotlin에서 타입 변환을 자동으로 처리해주는 기능입니다. when
표현식과 같은 조건문에서 변수를 검사한 후, 해당 변수의 타입이 자동으로 캐스트되는 것을 말합니다.
예를 들어, when
을 사용할 때, 변수의 타입이 특정 조건을 만족하면 Kotlin이 자동으로 해당 타입으로 캐스트해줍니다. 이를 통해 명시적으로 캐스팅을 하지 않아도 됩니다.
fun handleInput(input: Any) {
when (input) {
is String -> println("문자열 길이: ${input.length}")
is Int -> println("정수의 제곱: ${input * input}")
else -> println("알 수 없는 타입")
}
}
여기서 when
표현식에서 input
이 String
일 때는 자동으로 String
타입으로 변환되어 length
속성에 접근할 수 있고, Int
일 때는 Int
타입으로 변환되어 제곱을 계산할 수 있습니다.