2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

코틀린의 when 표현식은 어떻게 사용하나요?

_____
Q1: 코틀린의 when 표현식이란 무엇인가요?
A1: when 표현식은 여러 조건을 간결하게 검사할 수 있는 조건문으로, 자바의 switch문과 유사하지만 더 강력하고 유연한 기능을 제공합니다.

Q2: 기본적인 when 사용법은 어떻게 되나요?
A2: when 키워드 뒤에 검사할 값을 넣고, 각 조건을 콜론(:)과 함께 작성합니다. 예:
```kotlin
when (value) {
1 -> println("One")
2 -> println("Two")
else -> println("Other")
}
```

Q3: when을 표현식으로 사용할 수 있나요?
A3: 네, when은 반환값이 있는 표현식이므로 변수에 결과를 할당할 수 있습니다. 예:
```kotlin
val result = when (value) {
1 -> "One"
2 -> "Two"
else -> "Other"
}
```

Q4: 조건에 특정 값 외에 여러 값을 동시에 검사할 수 있나요?
A4: 네, 콤마(,)로 여러 값을 나열할 수 있습니다. 예:
```kotlin
when (value) {
0, 1 -> println("Zero or One")
else -> println("Other")
}
```

Q5: 특정 범위나 컬렉션 포함 여부도 검사 가능한가요?
A5: 네, `in` 또는 `!in`을 사용해 범위 혹은 컬렉션 포함 여부를 검사할 수 있습니다. 예:
```kotlin
when (value) {
in 1..10 -> println("1부터 10 사이")
!in 10..20 -> println("10부터 20 사이가 아님")
else -> println("기타")
}
```

Q6: when 조건에 임의의 조건식을 사용할 수 있나요?
A6: 네, 값을 검사하지 않고 조건식만 쓸 수도 있습니다. 이 경우 괄호 없이 when을 사용합니다. 예:
```kotlin
when {
x.isEmpty() -> println("빈 문자열")
x.length > 10 -> println("10글자 이상")
else -> println("기타")
}
```

Q7: when에서 else 블록은 반드시 필요한가요?
A7: when을 표현식으로 사용 시 모든 경우를 다루지 않으면 컴파일 에러가 나므로 else 블록이 필요할 수 있습니다. 하지만 모든 조건을 명확히 다루면 else 없이도 가능합니다.

Q8: 중첩 when 문도 가능한가요?
A8: 네, when 안에 또 다른 when을 사용할 수 있습니다. 상황에 따라 조건 분기가 복잡할 때 유용합니다.

Q9: when 표현식으로 타입 검사도 가능한가요?
A9: 가능합니다. is 키워드를 사용해 타입을 검사할 수 있습니다. 예:
```kotlin
when (obj) {
is String -> println("문자열입니다")
is Int -> println("정수입니다")
else -> println("기타 타입")
}
```

Q10: when 문의 반환 타입은 어떻게 되나요?
A10: when 표현식의 반환 타입은 모든 분기에서 반환하는 값의 타입을 공통으로 가진 타입이 됩니다. 타입이 다르면 컴파일 에러가 발생할 수 있습니다.

---

요약하면, 코틀린의 when은 값 비교, 타입 검사, 범위 및 컬렉션 포함 검사, 임의 조건식 평가 등 다양한 상황에 활용 가능한 강력한 조건 표현식입니다.
코틀린(Kotlin)에서 `when` 표현식은 조건에 따라 여러 가지 경우를 처리할 수 있는 강력한 제어 구조입니다.

`when`은 Java의 `switch` 문과 유사하지만, 더 많은 기능과 유연성을 제공합니다.

`when` 표현식은 특정 값에 대한 여러 조건을 검사하고, 해당 조건이 참일 때 실행할 코드를 정의할 수 있습니다.

기본 구문 `when` 표현식의 기본 구문은 다음과 같습니다: ```kotlin when (value) { condition1 -> { // condition1이 참일 때 실행할 코드 } condition2 -> { // condition2가 참일 때 실행할 코드 } else -> { // 모든 조건이 거짓일 때 실행할 코드 } } ``` 여기서 `value`는 검사할 값이며, 각 `condition`은 해당 값과 비교할 조건입니다.

`else` 블록은 모든 조건이 거짓일 때 실행됩니다.

예제 다음은 `when` 표현식을 사용하는 간단한 예제입니다: ```kotlin fun describe(obj: Any): String { return when (obj) { 1 -> "One" "Hello" -> "Greeting" is Int -> "Integer" else -> "Unknown" } } fun main() { println(describe(1)) // 출력: One println(describe("Hello")) // 출력: Greeting println(describe(4

2)) // 출력: Integer println(describe(3.1

4)) // 출력: Unknown } ``` 위의 예제에서 `describe` 함수는 다양한 타입의 객체를 받아 해당 객체에 대한 설명을 반환합니다.

`when` 표현식은 `1`, `"Hello"`와 같은 특정 값뿐만 아니라 `is Int`와 같은 타입 검사도 지원합니다.

여러 조건 처리 `when` 표현식에서는 여러 조건을 하나의 블록으로 묶을 수 있습니다.

다음은 그 예입니다: ```kotlin fun getColorDescription(color: String): String { return when (color) { "Red", "Green", "Blue" -> "Primary Color" "Cyan", "Magenta", "Yellow" -> "Secondary Color" else -> "Unknown Color" } } fun main() { println(getColorDescription("Red")) // 출력: Primary Color println(getColorDescription("Cyan")) // 출력: Secondary Color println(getColorDescription("Black")) // 출력: Unknown Color } ``` 위의 예제에서 `"Red"`, `"Green"`, `"Blue"`는 모두 같은 블록으로 묶여 있어, 이들 중 하나가 입력되면 "Primary Color"가 반환됩니다.

범위 검사 `when` 표현식은 특정 범위에 있는 값을 검사할 수도 있습니다.

다음은 그 예입니다: ```kotlin fun describeNumber(x: Int): String { return when (x) { in 1..10 -> "Between 1 and 10" in

11..20 -> "Between 11 and 20" else -> "Out of range" } } fun main() { println(describeNumber(

5)) // 출력: Between 1 and 10 println(describeNumber(1

5)) // 출력: Between 11 and 20 println(describeNumber(2

5)) // 출력: Out of range } ``` 위의 예제에서 `in` 키워드를 사용하여 특정 범위에 있는지를 검사하고 있습니다.

`when`을 표현식으로 사용하기 `when`은 표현식으로 사용할 수 있으며, 이 경우 결과 값을 반환할 수 있습니다.

다음은 그 예입니다: ```kotlin val result = when (val x =

5) { in 1..10 -> "x is between 1 and 10" else -> "x is out of range" } println(result) // 출력: x is between 1 and 10 ``` 위의 예제에서 `when` 표현식의 결과가 `result` 변수에 저장됩니다.

결론 코틀린의 `when` 표현식은 조건에 따라 다양한 경우를 처리할 수 있는 유용한 도구입니다.

기본적인 값 비교부터 타입 검사, 범위 검사까지 다양한 기능을 제공하며, 코드의 가독성을 높이는 데 기여합니다.

`when` 표현식을 적절히 활용하면 복잡한 조건문을 간결하게 작성할 수 있습니다.

작성자: 최다은 [비회원] | 작성일자: 1년 전 2024-09-09 09:47:11
조회수: 130 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.