본문 바로가기

Language/Kotlin

[Kotlin] 조건문 if & when(+Expression과 Statement 차이, Unit)

📝 학습목표
     1. if문과 when문을 예시를 통해 이해해보자.
     2. Expression(표현식)과 Statement(명령문)의 차이를 알아보자.
     3. Unit의 의미를 파악해보자.

 

 

 

 

조건문⎜if

if문은 조건에 따라 여러 가지 상황에서 다른 동작을 수행할 수 있다.

 

 

✔ 코틀린에서는 삼항연산자를 쓸 수 없다.

✔ minBy처럼 한 줄의 형태로 작성 가능하다.

 

 

 

 

 

조건문⎜when

when을 통해 다양한 상황에서 코드를 간결하고 명확하게 작성할 수 있다.

 

 

✔ 경우에 따라 다른 메시지를 출력할 수 있다.

✔ 2, 3처럼 복수 처리도 가능하다.

반환 유형이 Unit인 함수 내에서 when을 사용할 때 else를 생략할 수 있다. 함수가 어떤 값을 반환하지 않아도 되기 때문이다.

 

 

✔ 범위에 따라 다른 동작을 실행할 수 있다.

✔ ..는 ~(부터)를 의미한다.

✔ else 생략이 가능하다.

 

 

✔ 조건에 따라 변수에 값을 할당할 수 있다.

when이 값을 반환하는 표현식으로 사용될 때 else는 필수이다.

 

⚠️ 만약 else를 생략하면 오류가 발생한다.

 

 

 

 

Expression vs Statement 개념과 차이점

코틀린에서 Expression과 Statement는 프로그래밍에서 코드를 구성하는 기본적인 단위이다.

 

 

1. Expression(식)

  • Expression(식)은 값을 생성하고 반환하는 코드이다.
  • Expression은 평가될 수 있으며 결과를 반환한다.
//10 + 5는 expression이며, 15를 반환한다.
val x = 10 + 5

//if-else 구문은 expression이다.
val y = if (x > 10) "Big" else "Small"

 

 

 

2. Statement(문)

  • Statement(문)은 프로그램에서 어떤 작업을 수행하는 코드이다.
  • Statement는 값을 반환하지 않는다.
//변수에 값을 할당하는 것은 statement이다.
val a = 5

//화면에 문자열을 출력하는 것은 statement이다.
println("Hello, World!")

 

 

차이점

  • Expression은 값을 반환하고, Statement는 무언가를 실행하기 위한 문장이다.
  • 여러 개의 Statement가 조합되어 Expression을 형성할 수 있다.
  • 대부분의 경우에는 Expression을 사용하여 값을 계산하고 Statement를 사용하여 프로그램의 흐름을 제어한다.

 

 

 

 

코틀린에서 Unit은 어떤 의미일까?

코틀린에서 Unit은 값이 없음(값이 있지만 의미가 없음)을 나타내는 유형으로 자바의 void와 유사한 역할을 하지만,

void와 달리 실제로 값이 존재하며 Unit 값을 가진 변수나 함수가 있다. 그러나 이 값은 사용자에게 보이지 않는다.

Unit을 사용하는 이유는 함수가 실제로 어떤 값을 반환하지 않더라도 모든 함수는 값을 반환해야 하는 Kotlin의 특성 때문이다.

어떤 계산을 수행하고 그 결과를 반환하지 않는 함수의 반환 유형은 Unit이 된다.

fun sayHello(name: String): Unit {
    println("Hello, $name!")
}

위의 함수는 Unit을 반환하는데 실제로 값을 반환하지 않는다. 따라서 이 함수는 Expression이다.

이 코드는 함수가 아무것도 반환하지 않음을 나타내며 단순히 작업을 수행하는 역할을 한다는 것을 의미한다.

그러므로 코틀린에서 모든 함수는 Expression이며, 리턴값이 없더라도 Unit을 반환한다.

 

 

 

 

 

참고자료⎜https://www.youtube.com/watch?v=IDVnZPjRCYg