ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 {
    // 생략
    }

     

    반응형
Designed by Tistory.