Welcome! Everything is fine.

[Kotlin] 5강. 코틀린에서 조건문을 다루는 방법 본문

Kotlin

[Kotlin] 5강. 코틀린에서 조건문을 다루는 방법

개발곰발 2023. 12. 6.
728x90

* 인프런 강의 - 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)을 듣고 정리한 내용입니다.

 

🔗 4강 내용

 

[Kotlin] 4강. 코틀린에서 연산자를 다루는 방법

* 인프런 강의 - 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)을 듣고 정리한 내용입니다. 🔗 3강 내용 [Kotlin] 3강. 코틀린에서 Type을 다루는 방법 * 인프런 강의 - 자바 개발자를 위한 코

3uomlkh.tistory.com

5강. 코틀린에서 조건문을 다루는 방법

if문

코틀린에서의 if문은 자바와 거의 차이가 없다.

단, if-else는 자바에서 Statement, 코틀린에서는 Expression이다!

이게 무슨 말이냐면...

Expression과 Statement

Statment와 Expression은 다음과 같이 설명할 수 있다. Statement 안에 Expression이 있다는 것으로 이해하자!

  • Statement : 프로그램의 문장, 하나의 값으로 도출되지 않는 것도 Statement
  • Expression : 반드시 하나의 값으로 결과가 도출되는 문장

자바에서는 3항 연산자가 Expression이라고 볼 수 있다.

그러나 앞서 말했던 것처럼 코틀린에서 if-else는 Expression이다. 따라서 코틀린에서 3항 연산자는 없다.

바로 아래 코드와 같이 if-else문 앞에 return을 붙여 중복되는 return을 제거할 수 있다.

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

 

어떤 값이 특정 범위에 포함되어있는지 확인할 때, 코틀린에서는 in과 ..으로 간단하게 나타낼 수 있다.

if (score !in 0..100) {
  throw IllegalArgumentException("score의 범위는 0부터 100입니다.")
}

switch와 when

코틀린에서는 switch case문 대신 when문을 사용한다. when을 통해 나온 결과를 바로 return 할 수 있다.

when(score/10) {
  9 -> "A"
  8 -> "B"
  7 -> "C"
  else -> "D"
}

 

혹은 다음과 같이 다양한 조건을 가지고 분기할 수도 있다.

when(score) {
  in 90..99 -> "A"
  in 80..89 -> "B"
  in 70..79 -> "C"
  else -> "D"
}

 

when문의 조건부에서는 어떠한 Expression이라도 들어갈 수 있고, 여러 개의 조건을 동시에 검사할 수도 있다.

또는 다음과 같이 when에 값을 넣지 않고 자바에서의 early return처럼 활용할 수 있다.

when {
  number == 0 -> println("0입니다.")
  number % 2 == 0 -> println("짝수입니다.")
  else -> println("홀수입니다.")
}