코틀린 안드로이드 앱개발 강좌, 조건문과 반복문

코틀린(Kotlin)은 안드로이드 앱 개발에 최적화된 현대적인 프로그래밍 언어입니다. 이 글에서는 조건문과 반복문이라는 두 가지 기본적인 프로그래밍 개념을 살펴보겠습니다. 이 두 가지는 프로그래밍의 핵심 역량을 구축하는 데 필수적입니다. 따라서 이들을 이해하는 것은 안드로이드 앱 개발자로서 중요한 첫걸음이 될 것입니다.

1. 조건문(Conditional Statements)

조건문은 프로그램의 흐름을 제어하는 데 사용됩니다. 코틀린에서는 다양한 조건문을 제공하며 그중 가장 일반적인 것은 if문과 when문입니다.

1.1 IF 문

if 문은 주어진 조건이 참인지 거짓인지에 따라 다른 코드를 실행할 수 있도록 합니다. 기본적인 문법은 다음과 같습니다:

if (condition) {
        // 조건이 참일 때 실행할 코드
    } else {
        // 조건이 거짓일 때 실행할 코드
    }

예를 들어, 사용자의 나이에 따라서 적절한 메시지를 출력하는 코드를 작성해보겠습니다:

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

    fun main() {
        checkAge(16) // 출력: 미성년자입니다.
        checkAge(20) // 출력: 성인입니다.
    }

1.2 WHEN 문

코틀린의 when 문은 switch 문과 비슷하게 여러 조건을 다룰 수 있는 강력한 구문입니다. 기본 구문은 다음과 같습니다:

when (value) {
        condition1 -> // condition1이 참일 때 실행할 코드
        condition2 -> // condition2가 참일 때 실행할 코드
        else -> // 어느 조건도 만족하지 않을 때 실행할 코드
    }

이제 when 문을 사용하여 계절에 따른 메시지를 출력하는 예를 들어보겠습니다:

fun checkSeason(season: String) {
        when (season.toLowerCase()) {
            "spring" -> println("봄입니다.")
            "summer" -> println("여름입니다.")
            "fall", "autumn" -> println("가을입니다.")
            "winter" -> println("겨울입니다.")
            else -> println("잘못된 계절입니다.")
        }
    }

    fun main() {
        checkSeason("spring") // 출력: 봄입니다.
        checkSeason("WInter") // 출력: 겨울입니다.
        checkSeason("holiday") // 출력: 잘못된 계절입니다.
    }

2. 반복문(Loops)

반복문은 특정 코드 블록을 반복해서 실행할 수 있도록 하는 구조입니다. 코틀린에는 주로 for, while, do while 반복문이 있습니다.

2.1 FOR 문

for 문은 특정 범위나 컬렉션의 요소를 순회하며 반복할 때 사용됩니다. 기본 문법은 다음과 같습니다:

for (item in collection) {
        // 반복할 코드
    }

아래 예제는 1부터 10까지의 숫자를 반복하며 출력하는 방법을 보여줍니다:

fun printNumbers() {
        for (i in 1..10) {
            println(i)
        }
    }

    fun main() {
        printNumbers()
    }

2.2 WHILE 문

코틀린의 while 문은 조건이 참인 동안 계속해서 반복을 수행합니다. 문법은 다음과 같습니다:

while (condition) {
        // 반복할 코드
    }

아래 예제는 1부터 10까지의 숫자를 출력하는 방법을 보여줍니다:

fun printNumbers() {
        var i = 1
        while (i <= 10) {
            println(i)
            i++ // i를 증가시켜 종료 조건을 변경
        }
    }

    fun main() {
        printNumbers()
    }

2.3 DO WHILE 문

do while 문은 코드 블록을 최소 한 번 실행한 후 조건을 검사합니다. 기본 문법은 다음과 같습니다:

do {
        // 반복할 코드
    } while (condition)

아래 예제는 1부터 10까지의 숫자를 출력하는 방법을 보여줍니다:

fun printNumbers() {
        var i = 1
        do {
            println(i)
            i++
        } while (i <= 10)
    }

    fun main() {
        printNumbers()
    }

3. 조건문과 반복문 활용 예제

이제 조건문과 반복문을 조합하여 좀 더 복잡한 문제를 해결해 보겠습니다. 아래 예제는 사용자가 입력한 숫자가 소수인지 여부를 판단하고, 그 소수를 기준으로 특정 범위내의 소수를 출력하는 프로그램을 작성할 것입니다:

fun isPrime(num: Int): Boolean {
        if (num <= 1) return false
        for (i in 2 until num) {
            if (num % i == 0) return false
        }
        return true
    }

    fun printPrimesInRange(range: IntRange) {
        for (i in range) {
            if (isPrime(i)) {
                println(i)
            }
        }
    }

    fun main() {
        println("범위를 입력하세요 (예: 1 100): ")
        val rangeStart = readLine()?.toIntOrNull() ?: return
        val rangeEnd = readLine()?.toIntOrNull() ?: return
        printPrimesInRange(rangeStart..rangeEnd)
    }

4. 결론

이번 글에서는 코틀린의 조건문과 반복문에 대해 자세히 살펴보았습니다. 조건문과 반복문은 프로그래밍의 기본적인 개념으로, 다양한 문제를 해결하는 데 유용합니다. 이러한 개념들을 바탕으로 더 복잡한 로직을 작성할 수 있으며, 앱 개발에 큰 도움이 됩니다. 앞으로 조건문, 반복문을 지속적으로 연습하면서 다양한 문제를 해결해 나가길 바랍니다.