References: Do it! 코틀린 프로그래밍

코틀린에서의 조건문에 대해 알아봅니다.

 

 

1. 범위 연산자: in ..

 

조건문에서 ~이상 ~이하 이런조건은 빈번히 사용됩니다. 아래의 예시를 보겠습니다.

else if(score >= 80.0 && score <= 89.9) { ... ]

80점에서 89.9점까지를 찾는 조건문입니다.

코틀린에선 이러한 포함 여부를 확인할 수 있는 in 연산자와 범위를 지정할 수 있는 .. 연산자를 제공합니다.

 

위의 코드는 다음과 같이 다시 쓸 수 있습니다.

else if(score in 80.0 .. 89.9) { ... }

 

 

 

2. 조건문 when

 

if ... else ... 대신 when 조건문을 사용할 수 있습니다. 다른 언어에서의 switch ... case ... 같은 조건문으로 보입니다.

다음 예시를 통해 확인해 봅시다.

when(x) {
    0, 1, 2, 3 -> println("x는 0~3 사이.")
    5 -> println("x는 5.")
    parseInt(str) -> println("함수의 반환값이 일치함.")
    in 6..10 -> println("x는 6~10 사이.")
    !in 1..10 -> println("x는 1~10 사이에 존재하지 않음.")
    else -> println("x는 다른 무언가")
}

 

parseInt(str)처럼 함수의 반환값이 일치하면 when문에 함수의 반환값을 조건으로 사용할수 도 있습니다.

in 6..10 와 같이 앞서 알아본 범위연산자도 사용할 수 있습니다.

 

when조건문엔 인자를 뺴고 사용할 수도 있습니다. 

이 경우엔 내부 조건에 일치조건 뿐 아니라 다른 조건도 사용할 수 있습니다.

다음 예시를 통해 확인하도록 하겠습니다.

when{
    score >= 90.0 -> grade = 'A'
    score in 80.0..89.9 -> grade = 'B'
    score in 70.0..79.9 -> grade = 'C'
    score < 70.0 -> grade = 'F'
}

인자가 있는 when문과 달리 >=와 같은 조건식을 구성할 수 있습니다.

 

당연하지만 when에 Any클래스도 넣을 수 있습니다.

다양한 자료형의 인자를 받아 각각 다른 결과값을 리턴할 수 도 있습니다.

fun cases(obj: Any){
    when(obj){
        1 -> println("Int($obj)")
        "Hello" -> println("String($obj)")
        is Long -> println("Long($obj)")
        !is String -> println("Not String")
        else -> println("Unknown")
    }
}

 

 

 

 

 

반응형

'Programming' 카테고리의 다른 글

[Kotlin] 19. 라벨  (0) 2019.08.23
[Kotlin] 18. 반복문  (0) 2019.08.23
[Kotlin] 16. 꼬리 재귀 함수  (0) 2019.08.23
[Kotlin] 15. 확장함수와 중위함수  (0) 2019.08.23
[Kotlin] 14. 인라인 함수  (0) 2019.08.23

+ Recent posts