-코틀린에서 사용하는 자바의 switch-case 문법입니다.
val a1 = 10
when(a1) {
1 -> println("a1은 1입니다")
2 -> {
println("수행되는 코드")
println("a1은 2입니다")
}
3 -> println("a1은 3입니다")
else -> println("a1은 1, 2, 3이 아닙니다")
}
-> a1은 1,2,3이 아닙니다 출력
- 각 case 를 ->로 표시합니다. break를 쓰지 않아도 됩니다.
val a2 = 3
when(a2){
1, 2 -> println("a2는 1이거나 2입니다")
3, 4 -> println("a2는 3이거나 4입니다")
5, 6 -> println("a2는 5이거나 6입니다")
else -> println("a2는 1, 2, 3, 4, 5, 6이 아닙니다")
}
-> a2는 3이거나 4입니다 출력
- (,)컴마로 구분하여 두가지의 경우를 하나의 case로 처리 가능합니다.
val a5 = 5
when(a5){
in 1..3 -> println("a5는 1 ~ 3사이의 숫자입니다")
in 4..6 -> println("a5는 4 ~ 6사이의 숫자입니다")
in 1..6 -> println("a5는 1 ~ 6사이의 숫자입니다")
else -> println("a5는 1 ~ 6사이의 숫자가 아닙니다")
}
->a5는 4 ~ 6 사이의 숫자입니다 출력
-in 키워드와 .. 연산자를 이용하여 범위를 골라내는 case를 제작할 수 있습니다.
val a6 = 20
val str:String = when(a6){
10->"10 입니다"
20->{
println("두번째 경우의 수")
"20 입니다"
}
30->"30 입니다"
else -> "10~30 이 아닙니다"
}
- a6의 값이 10이냐 20이냐 30이냐 모두 아니냐에 따라 str 변수에 각각 다른 문자열이 저장됨
fun main(){
val str1 = setValue(10)
val str2 = setValue(20)
val str3 = setValue(30)
println("str1 : $str1")
println("str2 : $str2")
println("str3 : $str3")
}
fun setValue( a1:Int ) : String {
val str:String = when(a1){
10->"10 입니다"
20->"20 입니다"
30->"30 입니다"
else -> "10~30 이 아닙니다"
}
return str
}
->str1 : 10입니다
->str2: 20입니다
->str3: 30입니다 출력
fun setValue( a1:Int ) = when(a1){
10->"10 입니다"
20->"20 입니다"
30->"30 입니다"
else -> "10~30 이 아닙니다"
}
-함수의 몸체가 when으로 대체되어 선택된 데이터가 리턴값으로 반환됩니다.
'Kotlin' 카테고리의 다른 글
NoNameFunction(익명함수) (0) | 2022.09.01 |
---|---|
FunctionalProgram (0) | 2022.09.01 |
If 조건문 (0) | 2022.09.01 |
Operator(연산자) (0) | 2022.09.01 |
Function(함수) (0) | 2022.09.01 |