Kotlin 기본 문법2 - 조건부

KWANWOO·2021년 12월 24일
0

Kotlin 언어 배우기

목록 보기
2/8
post-thumbnail

코틀린 기본 문법 정리2 - 조건부

안드로이드 네이티브 앱 개발 공부를 위해 Kotlin의 기본적이면서도 중요한 문법들을 정리해보았다. 이 글은 조건부에 관련된 내용이다.

1. 조건부

Kotlin은 조건부 논리를 구현하기 위한 몇 가지 메커니즘을 제공한다.

1) if-else문

if 키워드 옆의 괄호 안에 포함된 표현식이 true로 평가되는 경우, 해당 분기 내 코드(즉, 중괄호 안에 포함된 바로 다음 코드)가 실행된다. 그렇지 않은 경우 else 분기 내 코드가 실행된다.

if (count == 42) {
    println("I have the answer.")
} else {
    println("The answer eludes me.")
}

else if를 사용하여 여러 조건을 나타낼 수 있다.

  • 아래 예와 같이 단일 조건문 내에서 보다 상세하고 복잡한 논리를 표현할 수 있다.
if (count == 42) {
    println("I have the answer.")
} else if (count > 35) {
    println("The answer is close.")
} else {
    println("The answer eludes me.")
}

조건문은 Stateful 논리를 나타내는 데 유용하지만 작성 시 반복될 수 있다. 위의 예에서는 각 분기에 String을 출력한다. 이러한 출력의 반복을 피하기 위해 Kotlin은 조건식을 제공합니다.

  • 아래와 같은 작성에서 return 키워드를 작성할 필요가 없고, 유형 추론을 사용하여 answerString에 명시적 유형 선언을 생략할 수 있지만 명확히 하기 위해 유형 선언을 포함하는 것이 좋다.
val answerString: String = if (count == 42) {
    "I have the answer."
} else if (count > 35) {
    "The answer is close."
} else {
    "The answer eludes me."
}

println(answerString)

2) when

조건문의 복잡도가 증가하면 if-else 표현식보다 when 표현식으로 작성할 수도 있다.

  • when 표현식의 각 분기는 조건, 화살표(->) 및 결과로 표시된다.
  • 화살표의 왼쪽 조건이 true로 평가되면 오른쪽에 있는 표현식의 결과가 반환된다.
  • 한 분기에서 다음 분기로 실행되지 않는다.
val answerString = when {
    count == 42 -> "I have the answer."
    count > 35 -> "The answer is close."
    else -> "The answer eludes me." // else가 반드시 필요!!
}

println(answerString)

when 표현식은 위와 같이 값을 리턴하여 변수에 저장하는 것 말고 기본적으로 조건문으로도 사용이 가능하다.

var num = 1
when(num) {
    1 -> println("num is 1")
    2 -> println("num is 2")
    3, 4 -> println("num is 3 or 4")
    else -> println("num is big") // else가 없어도 됨
}

when 표현식에서 ..을 사용하여 조건을 나타내는 것도 가능하다.

var score = 72
when(score) {
    90..100 -> println("A") // 90 <= score <= 100
    80..89 -> println("B") // 80 <= score <= 89
    70..79 -> println("C") // 70 <= score <= 79
    60..69 -> println("D") // 60 <= score <= 69
    else -> println("F") // else가 없어도 됨
}

간단하게 Kotlin 조건부 정리했음

조건부는 if-else는 다른 언어들도 비슷하고 when은 while문과 유사하기 때문에 어렵지 않게 정리하였다. 원래 조건부와 반복문을 하나의 글로 작성할 생각이었는데 반복문은 배열에 대해 정리한 뒤에 작성하는 것이 좋을 것 같아서 따로 하기로 했다ㅎㅎ 그래서 아마 다음 Kotlin 기본 문법 정리는 array와 list가 될거 같음...

📄 Reference

profile
관우로그

0개의 댓글