개발일지

Kotlin in A..Z (11) - when 본문

Kotlin (코틀린)

Kotlin in A..Z (11) - when

강태종 2020. 7. 15. 09:03

when문

when(인자) {

 표현식1 -> 코드

 표현식2 -> 코드

 표현식3 -> 코드

 else -> 코드

}

 

다른 언어의 switch문과 비슷하다

else if문을 간단하게 표현할 수 있다. 인자와 표현식의 결과가 같으면 해당하는 코드를 실행한다.

 

코드

val x = 1
when(x) {
    1 -> println("x is 1")
    2 -> println("x is 2")
    else -> { // 여러줄의 코드가 필요하면 블록을 사용하여 표현할 수 있다.
        println("================")
        println("x is not 1 and 2")
        println("================")
    }
}

 

결과

x is 1

when 일치되는 조건을 한번에 표현하기

일치되는 조건을 , 를 사용하여 한번에 표현할 수 있다.

 

코드

val x = 1
when(x) {
    1, 2 -> println("x is 1 or 2")
    
    else -> { // 여러줄의 코드가 필요하면 블록을 사용하여 표현할 수 있다.
        println("================")
        println("x is not 1 and 2")
        println("================")
    }
}

 

결과

x is 1 or 2

when문에 함수의 반환값 사용하기

val number = 10
val input1 = readLine()
val input2 = readLine()

when(number) {
    input1!!.toInt() -> {
        println("number is input1")
    }
    
    input2!!.toInt() -> {
        println("number is input2")
    }
    
    else -> {
        println("else")
    }
}

when문에 in과 범위 연산자 사용하기

코드

val number = 10
when(number) {
    in 1..10 -> {
        println("1 <= number <= 10")
    }
    
    else -> {
        println("number < 1, number > 10")
    }
}

 

결과

1 <= number <= 10

when문에 is키워드 사용하기

코드

fun checkType(variable: Any) {
    when(variable) {
        is Int -> {
            println("Type is Int")
        }

        is String -> {
            println("Type is String")
        }

        else -> {
            println("Unknown Type")
        }
    }
}

fun main() {
    checkType("개발일지")
}

 

결과

Type is String

인자가 없는 when문

코드

val number = 1
when {
    number == 1 -> println("Number is 1")
    number == 2 -> println("Number is 2")
}

 

결과

Number is 1

간단한 when문

when문을 통해 간단하게 값을 반환할 수 있다. 이러한 경우 else는 필수이다.

val num1 = 1
val num2 = when(num1) {
    1 -> {
        1
    }

    2 -> {
        4
    }

    else -> {
        100
    }
}

'Kotlin (코틀린)' 카테고리의 다른 글

Kotlin in A..Z (13) - 클래스  (0) 2020.07.15
Kotlin in A..Z (12) - for, while, do ~ while  (0) 2020.07.15
Kotlin in A..Z (10) - if문  (0) 2020.07.15
Kotlin in A..Z (9) - 다양한 함수  (0) 2020.07.14
Kotlin in A..Z (8) - 람다  (0) 2020.07.11
Comments