(kotlin) when

박용석·2023년 11월 2일

when은 kotlin에서 여러가지 조건을 기반으로 코드 블록을 실행하는데 사용되는 제어 흐름 구조이다. Java에서 switch문과 유사하지만, 더 강력하고 유연한 기능을 제공한다.

  1. 여러 값에 대한 분기 처리
val day = 3
when (day) {
	1 -> println("월요일")
	2 -> println("화요일")
	3 -> println("수요일")
	// ...
	else -> println("알 수 없는 날짜")
}
  1. 타입 체크
val result: Any = "Hello"
when (result) {
	is String -> println("문자열입니다.")
	is Int -> println("정수입니다.")
	else -> println("알 수 없는 타입입니다.")
}
  1. 범위 지정
val score = 85
when (score) {
in 90..100 -> println("A 학점")
in 80 until 90 -> println("B 학점")
// ...
else -> println("기타 학점")
}
  1. 함수 호출 결과에 따른 분기
fun getStringLength(str: String?): Int? {
	return when {
		str == null -> null
		str.isEmpty() -> 0
		else -> str.length
	}
}
  1. 인자가 여러 값 중 하나와 일치하는지 확인
fun describe(obj: Any): String =
	when (obj) {
		1 -> "하나"
		"Hello" -> "문자열 Hello"
		is Long -> "Long 타입"
		!is String -> "String이 아닌 타입"
		else -> "기타"
	}
  1. 열거형 클래스와 함께 사용
enum class Color {
RED, GREEN, BLUE
}

fun getColorName(color: Color): String =
	when (color) {
		Color.RED -> "빨강"
		Color.GREEN -> "초록"
		Color.BLUE -> "파랑"
	}

when은 여러가지 형태로 사용되어 간결하고 가독성이 높은 코드를 작성할 수 있도록 도와준다. 또한, 모든 가능한 경우를 다루기 위해 else 블록을 사용할 수 있다. 이는 다양한 상황에서 코드의 가독성을 향상시키는데 도움이 된다.

profile
슬기로운 개발 활동

0개의 댓글