앱 개발/Kotlin

[Kotlin] 코틀린 기본 1 (자료형, string template, 조건식if/when)

cha430 2026. 2. 25. 17:28

자료형 val, var

string template

조건식 if

조건식 when

 

 

 

 

 

자료형 val, var

 

val a :Int = 10
var b :Int = 20

a = 30	// 에러
b = 30	// 정상

 

- val

 

value 의 약자로 '값'을 말한다.

값이란 변하지 않는 상수를 뜻하며, 따라서 추후 값을 변경할 수 없다.

 

- var

 

variable 의 약자로 변수를 말한다.

언제든 다른 데이터를 대입할 수 있다.

 

 


 

 

 

String template

 

문자열과 변수를 함께 출력할 때 사용한다.

val name = "Cha"
println("my name is $name Nice to meet you")
println("my name is ${name}Nice to meet you")

 

만약 띄어쓰기 없이 붙여써야할 경우 변수와 구분하기 위해 {} 대괄호를 써준다.

 

val name = "C"
val name2 = "ha"
println("my name is ${name + name2}")

 

이런식으로 쓰는 것도 가능하다.

 

'$' 표시를 출력하고 싶은 경우 \ 백슬래시를 이용하면 된다.

println("is this true? ${1==0}")
// false 로 출력

println("this is 2\$"}
// $ 출력

 

 

 


 

조건식

 

if

 

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

 

자바처럼 삼항연산자는 없지만 

int maxBy(int a, int b) {
    return (a > b) ? a : b;
}

 

 

대신 코틀린은 

아래와 같이 쓸 수 있다.

fun maxBy(a : Int, b : Int) : Int = if(a>b) a else b

 

 

 

when

 

when은 statement(문) 로도 쓰이고 expression(표현식) 으로도 쓰인다.

 

statement : '값'을 만들지 않는 그냥 문장으로 쓰일 때.

expression : '값'을 만들 때

 

** 코틀린의 모든 함수는 expression 이다.

(1번의 함수 checkNum 은 아무 것도 return 하지 않지만 사실 Unit 이 리턴값이다. (자바에서 void))

 

 

 

1.

fun checkNum(score : Int) {
    when(score) {
    0 -> println("this is zero")
    1 -> println("this is one")
    2, 3 -> println("this is two or three")
    else -> println("I don't know")
}

함수 안에서 사용할 때에도 값을 반환하지 않고 실행(프린트)만 하기 때문에 when은 statement(문장) 으로 쓰인 것

 

 

 

 

2.

var b = when(score){
    1 -> 10
    2 -> 20
    else -> 50
}

이렇게 expression (표현식)으로 쓸 수도 있는데, 이때 else 를 꼭 써주어야 한다.

(값을 대입하는 경우 = expression)

 

자바의 switch - return 을 when 하나로 합쳐서 쓰는 것.

int b;
switch(score) {
    case 1: b = 10; break;
}

 

 

3.

when(score){
    in 90..100 -> println("Good")
    in 80..90 -> println("Soso")
    else -> println("okay")
}

단순히 실행(프린트)만 하므로 그냥 statement (문)

 

아래처럼 함수의 return 형태로도 가능하다. 

fun getGrade(score: Int): String {
    return when(score) {
        in 90..100 -> "A"
        in 80..89 -> "B"
        else -> "C"
    }
}