Kotlin

When

본이qq 2022. 9. 1. 19:02

 

-코틀린에서 사용하는 자바의 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