코틀린의 when 표현식 사용 예시는?
_____A1: when 표현식은 여러 조건을 검사하여 그에 맞는 분기 처리를 수행하는 조건식입니다. Java의 switch 문과 유사하지만 더 간결하고 강력한 기능을 제공합니다.
Q2: when 표현식의 기본 문법은 어떻게 되나요?
A2:
```kotlin
when (value) {
condition1 -> result1
condition2 -> result2
else -> defaultResult
}
```
value에 대해 각 condition을 검사하고 일치하는 분기를 실행합니다. else는 모든 조건이 맞지 않을 때 실행됩니다.
Q3: when을 값으로 사용할 수 있나요?
A3: 네, when은 표현식이므로 그 결과를 변수에 할당할 수 있습니다. 예:
```kotlin
val result = when (x) {
1 -> "One"
2 -> "Two"
else -> "Unknown"
}
```
Q4: 여러 조건을 한 분기에서 처리하는 방법은?
A4: 쉼표로 구분하여 여러 값을 하나의 분기로 묶을 수 있습니다.
```kotlin
when (x) {
0, 1 -> print("x == 0 or x == 1")
else -> print("x is neither 0 nor 1")
}
```
Q5: 각 조건에 복잡한 코드를 작성할 수 있나요?
A5: 네, -> 오른쪽에 블록을 써서 여러 줄 코드를 작성할 수 있습니다.
```kotlin
when (x) {
1 -> {
print("One")
print("!")
}
else -> print("Other")
}
```
Q6: 조건에 타입 검사도 가능한가요?
A6: 가능합니다. is 키워드를 사용하여 변수의 타입을 검사할 수 있습니다.
when (obj) {
is String -> print("String: $obj")
is Int -> print("Int: $obj")
else -> print("Unknown type")
}
```
Q7: 조건에 범위 검사도 가능한가요?
A7: in 키워드를 사용해 범위를 검사할 수 있습니다.
```kotlin
when (x) {
in 1..10 -> print("x is between 1 and 10")
!in 10..20 -> print("x is outside 10 to 20")
else -> print("x is between 11 and 20")
}
```
Q8: when에서 인자 생략이 가능한가요?
A8: 네, 인자를 생략하면 각 분기의 조건을 Boolean 식으로 작성해 순서대로 검사합니다.
```kotlin
when {
x.isEmpty() -> print("Empty string")
x.length > 5 -> print("Long string")
else -> print("Short string")
}
```
Q9: when으로 여러 타입과 값을 함께 검사할 수 있나요?
A9: 네, 여러 조건을 조합하여 복합 분기 처리가 가능합니다.
```kotlin
when {
x is String && x.startsWith("A") -> print("Starts with A")
x is Int && x > 0 -> print("Positive integer")
else -> print("Other")
}
```
Q10: when을 활용한 실제 예시 하나 알려주세요.
A10:
```kotlin
fun getDayType(day: String) = when(day) {
"Monday", "Tuesday", "Wednesday", "Thursday", "Friday" -> "Weekday"
"Saturday", "Sunday" -> "Weekend"
else -> "Invalid day"
}
```
입력한 요일에 따라 평일/주말/잘못된 입력을 구분하는 코드입니다.
작성자:
서태지 [비회원]
| 작성일자: 1년 전
2024-09-09 09:47:18
조회수: 188 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 188 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.