when은 kotlin에서 여러가지 조건을 기반으로 코드 블록을 실행하는데 사용되는 제어 흐름 구조이다. Java에서 switch문과 유사하지만, 더 강력하고 유연한 기능을 제공한다.
val day = 3
when (day) {
1 -> println("월요일")
2 -> println("화요일")
3 -> println("수요일")
// ...
else -> println("알 수 없는 날짜")
}
val result: Any = "Hello"
when (result) {
is String -> println("문자열입니다.")
is Int -> println("정수입니다.")
else -> println("알 수 없는 타입입니다.")
}
val score = 85
when (score) {
in 90..100 -> println("A 학점")
in 80 until 90 -> println("B 학점")
// ...
else -> println("기타 학점")
}
fun getStringLength(str: String?): Int? {
return when {
str == null -> null
str.isEmpty() -> 0
else -> str.length
}
}
fun describe(obj: Any): String =
when (obj) {
1 -> "하나"
"Hello" -> "문자열 Hello"
is Long -> "Long 타입"
!is String -> "String이 아닌 타입"
else -> "기타"
}
enum class Color {
RED, GREEN, BLUE
}
fun getColorName(color: Color): String =
when (color) {
Color.RED -> "빨강"
Color.GREEN -> "초록"
Color.BLUE -> "파랑"
}
when은 여러가지 형태로 사용되어 간결하고 가독성이 높은 코드를 작성할 수 있도록 도와준다. 또한, 모든 가능한 경우를 다루기 위해 else 블록을 사용할 수 있다. 이는 다양한 상황에서 코드의 가독성을 향상시키는데 도움이 된다.