언어/Kotlin

[Kotlin] 코틀린 살짝 맛보기 - 제어문

JJangGu 2022. 7. 20. 22:37

코틀린에서의 제어문도 자바와 차이가 있는 부분입니다. 

 

코틀린에서의 If-else 문은 그 자체로 하나의 표현식 (expression) 이 됩니다.

이는 if-else 문을 그대로 return 할 수도 있는 뜻이기도 합니다. Java에서 클린코드를 구현하다보면 else 문을 되도록 사용하지 않는 것을 권고합니다. Early return 을 통해 else 를 쓰지 않고 로직이 처리되는 것을 선호합니다.

 

그런데 코틀린에서는 그 자체가 하나의 표현식이라서 바로 return 문에서 활용이 가능합니다.

 

fun getGradeWithIf(score: Int): String {
    return if (score >= 50) {
        "P"
    } else {
        "F"
    }
}

 

위와 같은 표현이 가능합니다. 

 

switch-case 구문은 when 구문을 써서 대체할 수 있습니다. 역시 표현식이므로 바로 return 이 가능합니다.

fun getGradeWithSwitch(score: Int) : String {
    // 조건부에는 어떤 expression 도 들어갈 수 있다.
    return when (score) {
        in 90..99 -> "A"
        in 80..89 -> "B"
        in 70..79 -> "C"
        else -> "D"
    }
}

 

또한 표현식이므로 바로 변수에 대입도 가능합니다.

 

자바와 다른점은 이정도인 것 같습니다. 하지만 실제 코드를 작성해보면 꽤나 차이가 나는 부분입니다. 

무의미하게 나누는 함수 사용이 줄어들고 더 직관적인 코딩도 가능한 것 같고, else 를 사용하지 않으려 했던 자바와도 차이가 있습니다.

 

다음은 함수 사용의 차이에 대해서 적겠습니다. 👍