카테고리 없음

[kotlin] expression & statement, control-flow(when)

하나쓰 2024. 9. 30. 08:15
728x90
반응형

1. expression(표현식) and statement(문장)

표현식이란? 

- 변수, 연산자로 구성되어 단일 값을 리턴하는 표현을 의미한다

- if, when, try는 표현식에 해당한다

 

문장이란?

- 수행할 작업을 나타내는 명령형 프로그래밍 언어의 가장 작은 독립된 실행형 요소를 의미한다

- 완전한 실행단위를 구성하는 모든 것은 문장(statement)이다

- 식은 문장의 한 부분(statement >= expression)이다

 

val passOrFail = if(jumsu >= 60) "pass" else "fail"

val passOrFail = if(jumsu >= 60) "pass" else "fail"

 

여기서 부등호의 오른쪽 부분(if(jumsu >= 60) "pass" else "fail")은 pass나 fail이라는 문자를 리턴하고 passOrFail이라는 변수에 해당 값을 할당하기 때문에 표현식(expression)이고, 전체(val passOrFail = if(jumsu >= 60) "pass" else "fail")는 문장(statement)이다

 

2. range 

범위를 선언할 수 있고 코틀린에서는 3가지의 타입이 존재한다

또한 처음값과 마지막 값을 포함한다

type usage range
Char CharRange('A', 'Z) 혹은
'A'...'Z'
A ~ Z
Int IntRange(1, 45)혹은 1..45 1 ~ 45
Long IntRange와 동일. LongRange()를 사용해 범위를 정해주면 됨

 

3. control-flow(when, if, while)

(if랑 while은 자바스크립트에도 있는 문법이라 패스)

 

코틀린에서는 switch문 대신 when을 사용한다

 

const val VIP = "vip"; // const 는 상수선언, 기본타입과 스트링만 가능
const val SILVER = "silver"
const val WHITE = "white"
const val NORMAL = "normal"

fun main () {
   val membershipPoint = Random().nextInt(40000)
   val membershipClass = when(membershipPoint) {
    in 1000..20000 -> WHITE
    in 20001..30000 -> SILVER
    in 30001..40000 -> VIP
    else -> NORMAL
}

println("이번 달 당신의 멤버십은 ${membershipClass} 입니다.")
}

// 혹은 아래와 같이 작성 가능

val membershipClass = when() {
  membershipPoint in 1000..20000 -> WHITE
  membershipPoint in 20001..30000 -> SILVER
  membershipPoint in 30001..40000 -> VIP
  else -> { NORMAL }
}

 

4. vararg, *(spread operator)

vararg : 인자가 여러 개일때는 파라미터의 맨 마지막에 사용함

* : 코틀린에서 스프레드 오퍼레이터를 뜻함(자바스크립트에서는 ...arr 이런 식으로 사용했었음)

fun totalSum(subject: String, vararg score : Int ): Int {
// 생략
}

 

반응형