Kotlin :: 프로그래밍 언어 배우기 (조건문)

Android/Kotlin 2020.10.01 댓글 moonsu
728x90

본 문서는 안드로이드 개발자 가이드 를 토대로 작성되었습니다.

 

조건문

 

1. if~else

Kotlin의 조건부 논리를 구현하기 위한 가장 일반적인 메커니즘 if~else.

if() 괄호 안에 식이 true 일 때 {} (중괄호) 내 코드가 실행된다. 그렇지 않은 경우 else 내 코드가 실행된다.

if (count == 42) {
    println("count 는 42다.")
} else {
    println("count 는 42가 아니다.")
}

경우의 수가 3가지 이상일 때 else if 를 사용하여 여러 조건을 나타낼 수 있다.

if (count == 42) {
    println("count 는 42이다.")
} else if (count > 35) {
    println("count 는 42가 아니면서 35보다는 크다.")
} else {
    println("count 는 35보다 크지 않다.")
}

if~else문은 굉장히 유용하지만 위와 같은 문장이 여러 곳에 반복해 사용된다면 코드가 복잡하고 지저분해 질 수 있다. 이러한 일을 피하기 위해 Kotlin은 아래와 같은 조건식을 제공한다.

val answerString: String = if (count == 42) {
    "count 는 42이다."
} else if (count > 35) {
    "count 는 42가 아니면서 35보다는 크다."
} else {
    "count 는 35보다 크지 않다."
}

// answerString 변수에는 if~else문의 결과값이 저장되어 있다.
println(answerString)

결과값이 반환되어질 때 return 키워드를 사용하는 것이 일반적이지만 각 조건의 결과값을 암시적으로 반환하여 return 키워드를 사용할 필요가 없다.

 

위 코드는 복잡하고 가독성이 떨어진다. 이처럼 조건문의 복잡도가 증가하면 if~else문을 when문으로 교체할 수도 있다.

val answerString = when {
    count == 42 -> "count 는 42이다."
    count > 35 -> "count 는 42가 아니면서 35보다는 크다."
    else -> "count 는 35보다 크지 않다."
}

println(answerString)

when문의 조건의 결과는 화살표(->)로 표시된다. 화살표의 왼쪽 조건이 참(true)이라면 오른쪽의 결과가 반환되는 것이다. when문은 if~else문과 완전히 동일하지만 더 쉽게 읽을 수 있다.

728x90
반응형

댓글