[Kotlin] 코틀린 기본 문법(1) - 함수, 변수, 문자열 템플릿, 조건문, expression vs statement

01_함수(Function)


☾ 함수(Function)

💡 fun 함수이름(변수명 : 타입) : 반환타입 { }

 

 

  • kotlin 메인 함수
fun main(){
    // 코드
}

 

 

반환값이 없을 때는 Unit 을 사용한다.(생략 가능)

// 반환값이 없을 때
fun helloWorld() {
    println("Hello World")
}

// 반환값이 있을 때
fun add(a :Int, b : Int) : Int {
    return a + b
}

 

 

 

02_변수(var, val)


변수를 초기화할 때는 타입을 적지 않아도 자동으로 해석한다.

그러나 val과 var은 구분해서 작성해야 한다.

 

 

☾ val

= value(값. 상수)

값을 변경할 수 없다.

fun hi() {
    val a : Int = 10
//    a = 100 // val 변수는 값 변경 불가
}

 

 

☾ var

= variable(변수)

값을 변경할 수 있다.

fun hi() {
    val b : Int = 20
    b = 100
}

 

 

 

03_String Template


변수를 출력할 때는 ${변수} 형식으로 작성한다.

💡 print(”${변수}”)
val name = "Gildong"
val lastname = "Hong"
println("my name is ${name + lastname} I'm 23")

 

 

 

04_조건문(if, when)


☾ if

조건식이 참이면 if문을 수행한다.

fun maxBy(a : Int, b : Int) : Int {
    if (a > b) {
        return a
    } else {
        return b
    }
}

 

 

if문을 간결하게 작성하는 방법도 있다.

💡 if (조건식) 참 실행문 else 참이 아닐 때 실행문
fun maxBy2(a : Int, b : Int) = if (a>b) a else b

 

 

 

☾ when

kotlin에서는 다른 프로그래밍 언어에서 사용하는 switch 대신 when을 사용한다.

💡 when(값) { 조건식 → 실행문 }
when(score) {
    0 -> println("This is 0")
    1 -> println("This is 1")
    2, 3 -> println("This is 2 or 3")
    else -> println("I don't know")
}

 

 

Expression(값을 반환하는 문장)의 경우 반드시 else가 필요하다.

var b : Int = when(score) {
    1 -> 1
    2 -> 2
    else -> 3 // else 반드시 입력해야 함
}

 

 

조건식에 연산자를 사용할 수 있다.

when (score) {
    in 90..100 -> println("You are genius")
    in 10..90 -> println("Not bad")
    else -> println("Bad")
}

 

 

 

04_Expression vs Statement


☾ 표현식(Expression)

값을 반환하는 코드 단위

kotlin의 모든 함수가 여기에 포함된다.(반환값이 없는 함수도 Unit을 반환한다)

val sum = 1 + 2

 

☾ 문장(Statement)

명령어를 지시하는 코드 단위

표현식은 문장이 될 수 있지만, 모든 문장이 표현식은 아니다.

val num = 10
if (number > 0) {
    println("Number is positive")
}