본문 바로가기

Android Development/Kotlin

Kotlin 기본문법 (kotlin Basic syntax)

Kotlin 기본 문법 공부하기

Kotlin을 공부하기 시작하면서, 우선 기본 문법을 확실하게 이해하는 것이 중요하다고 느낀다. Kotlin은 간결한 문법과 더불어, Java와의 호환성도 뛰어나기 때문에 학습하기에 매력적인 언어다. 이번에 공부할 내용은 Kotlin의 기본적인 구문, 변수 선언 방법, 함수 정의, 그리고 조건문 사용법이다. 하나씩 정리하면서 나만의 방식으로 코드를 작성하는 연습을 해야겠다.

프로그램 진입점

Kotlin 프로그램의 진입점은 main 함수로 정의된다. 다른 언어와 마찬가지로 프로그램이 실행되면 main 함수가 호출되며, 그 안에 작성된 코드가 순차적으로 실행된다. 예를 들어, "Hello, Kotlin!"을 출력하는 간단한 프로그램은 아래와 같이 작성할 수 있다.

fun main() {
    println("Hello, Kotlin!")
}
        

여기서 println은 콘솔에 출력을 의미하며, Kotlin에서는 매우 간단한 형태로 출력을 할 수 있다. Kotlin의 장점은 바로 이런 간결함에서 오는 것 같다. 작은 것부터 익숙해지면서 복잡한 기능으로 확장해 나가야겠다.

변수 선언

Kotlin에서 변수를 선언하는 방법은 두 가지가 있다. 하나는 val을 사용하는 불변 변수 선언이고, 다른 하나는 var를 사용하는 가변 변수 선언이다. val로 선언된 변수는 값을 변경할 수 없고, var는 값을 나중에 다시 변경할 수 있다. 이렇게 두 가지 방법을 적절히 사용하는 것이 중요하다.

val x: Int = 10  // x는 불변 변수
var y: Int = 20  // y는 가변 변수
y = 30           // y는 변경 가능
        

Kotlin은 타입 추론이 가능하기 때문에 변수의 타입을 명시적으로 지정하지 않아도 된다. 그러나 코드의 가독성을 높이기 위해 명시적으로 타입을 지정하는 것도 나쁘지 않다. 타입을 지정하지 않으면 Kotlin이 자동으로 추론해준다.

함수 정의

Kotlin에서 함수는 fun 키워드를 사용해 정의한다. 함수는 매우 간결하게 정의할 수 있으며, 반환 타입도 명시적으로 지정할 수 있다. 아래는 두 개의 정수를 더하는 함수를 정의한 예시다.

fun sum(a: Int, b: Int): Int {
    return a + b
}
        

위 함수는 두 개의 정수 ab를 받아서 그 합을 반환한다. 간결하면서도 명확하게 함수의 역할을 나타내는 것이 Kotlin 함수의 특징이다. 또한, 반환값이 없는 함수는 Unit을 반환하는데, 사실 Unit은 생략이 가능하다.

fun printSum(a: Int, b: Int) {
    println("Sum of $a and $b is ${a + b}")
}
        

조건문

Kotlin에서 조건문은 다른 언어들과 유사하지만, if 문이 표현식으로도 사용될 수 있다는 점이 흥미롭다. 즉, 조건에 따라 값을 반환하는 데도 사용할 수 있다. 예를 들어, 두 수 중 큰 값을 반환하는 함수는 아래와 같이 작성할 수 있다.

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

Kotlin에서는 if 문이 하나의 표현식으로 간주되기 때문에, 삼항 연산자가 필요하지 않다. 이런 작은 차이들이 Kotlin을 더 간결하게 만들어주고, 코드 작성이 좀 더 직관적이게 느껴진다. 앞으로 이런 부분들을 더 깊이 공부해보면서, 실제로 활용해봐야겠다.

 

예제 코드들

1. 변수 선언 예제

fun main() {
    val languages = listOf("Kotlin", "Java", "Swift")
    var selectedLanguage = "Kotlin"

    println("현재 선택된 언어: $selectedLanguage")

    selectedLanguage = "Java"  // 가변 변수이기 때문에 값을 변경할 수 있다.
    println("변경된 언어: $selectedLanguage")

    // 불변 리스트에 있는 요소는 변경할 수 없음
    println("지원되는 언어: ${languages.joinToString()}")
}

이 예제에서는 valvar의 차이를 보여주고, listOf를 사용해 불변 리스트를 생성한 후 가변 변수와 함께 사용하는 예제다.

2. 함수 정의 예제

fun greetUser(name: String = "Guest", age: Int = 18): String {
    return "안녕하세요, $name! 나이는 $age 살이시네요."
}

fun main() {
    // 기본값을 사용하여 호출
    println(greetUser())

    // 인자를 전달하여 호출
    println(greetUser("Alice", 25))
}

Kotlin에서 함수의 기본값 파라미터를 사용하는 예제다. 파라미터가 전달되지 않으면 기본값을 사용하며, 원하는 경우 특정 값을 전달해 함수를 호출할 수 있다.

3. 조건문 예제

fun checkAge(age: Int) {
    if (age < 18) {
        println("미성년자입니다.")
    } else if (age in 18..64) {
        println("성인입니다.")
    } else {
        println("노년층입니다.")
    }
}

fun main() {
    checkAge(15)   // 출력: 미성년자입니다.
    checkAge(25)   // 출력: 성인입니다.
    checkAge(70)   // 출력: 노년층입니다.
}

if-else 문을 사용해 나이에 따른 조건을 처리하는 예제다. 나이에 따라 다른 메시지를 출력하며, 범위를 확인하는 in 연산자를 활용한다.