kotlin

Kotlin 언어 제어문[ if, when, switch, for, while , do-while ] 가이드

임베디드 친구 2024. 12. 13. 08:46
반응형

Kotlin은 다양한 제어문을 제공하여 효율적인 프로그램 흐름을 작성할 수 있게 합니다. 이 포스팅에서는 제어문에 대해 알아보고, 조건문과 반복문을 활용하는 방법을 예제와 함께 설명하겠습니다.

1. 조건문 (if, when)

1.1 if 문

if 문은 조건을 확인하고 그에 따라 코드 블록을 실행하는 데 사용됩니다. Kotlin의 if 문은 자바와 유사하지만 표현식(expression)으로 사용할 수 있어 매우 유용합니다.

val a = 10
val b = 20

// if 문을 사용한 조건 확인
if (a > b) {
    println("a는 b보다 큽니다.")
} else {
    println("a는 b보다 작거나 같습니다.")
}

// if 문을 표현식으로 사용
val max = if (a > b) a else b
println("최댓값은 $max 입니다.")

위의 예제에서 if 문을 사용하여 두 값을 비교하고, if 문을 표현식으로 사용하여 최대값을 구하는 것을 볼 수 있습니다.

1.2 when 문

when 문은 여러 조건을 처리해야 할 때 유용합니다. 자바의 switch 문과 비슷하지만 더 강력한 기능을 제공합니다.

val day = 3

// when 문을 사용한 조건 확인
val dayName = when (day) {
    1 -> "월요일"
    2 -> "화요일"
    3 -> "수요일"
    4 -> "목요일"
    5 -> "금요일"
    6 -> "토요일"
    7 -> "일요일"
    else -> "잘못된 입력"
}

println("요일: $dayName")

when 문은 특정 값에 따라 분기처리할 때 유용하며, else 블록을 통해 모든 경우를 커버할 수 있습니다.

다른 예로, 특정 값의 범위를 체크하거나 객체 타입에 따라 동작을 다르게 할 수 있습니다.

val number = 15

// 값의 범위에 따른 when 문
val category = when (number) {
    in 1..10 -> "1부터 10 사이의 숫자"
    in 11..20 -> "11부터 20 사이의 숫자"
    else -> "범위를 벗어난 숫자"
}

println(category)

2. 반복문 (for, while)

2.1 for 문

for 문은 컬렉션이나 범위를 순회할 때 사용됩니다. Kotlin의 for 문은 간결하면서도 강력한 반복문을 제공합니다.

// 1부터 5까지의 숫자를 출력하는 for 문
for (i in 1..5) {
    println("i: $i")
}

// 배열 순회하기
val fruits = arrayOf("사과", "바나나", "체리")
for (fruit in fruits) {
    println(fruit)
}

위의 예제에서는 1..5 범위를 사용하여 반복문을 실행하고, 배열을 순회하는 방법을 보여줍니다.

또한, 인덱스와 값을 동시에 사용할 수도 있습니다.

val colors = listOf("빨강", "초록", "파랑")
for ((index, color) in colors.withIndex()) {
    println("$index: $color")
}

2.2 while 문

while 문은 조건이 참인 동안 반복을 수행합니다. do-while 문은 먼저 블록을 실행한 후 조건을 검사합니다.

var x = 5

// while 문을 사용한 반복
while (x > 0) {
    println("x: $x")
    x--
}

// do-while 문을 사용한 반복
var y = 3
do {
    println("y: $y")
    y--
} while (y > 0)

while 문은 조건을 먼저 평가하기 때문에 조건이 참이 아닐 경우 반복문이 실행되지 않을 수 있습니다. 반면, do-while 문은 최소 한 번은 실행됩니다.

3. 예제: 숫자 맞추기 게임

다음은 지금까지 배운 제어문을 활용하여 간단한 숫자 맞추기 게임을 구현한 예제입니다.

import kotlin.random.Random

fun main() {
    val targetNumber = Random.nextInt(1, 101) // 1부터 100 사이의 난수 생성
    var guess: Int
    var attempts = 0

    println("1부터 100 사이의 숫자를 맞춰보세요!")

    do {
        print("숫자를 입력하세요: ")
        guess = readLine()?.toIntOrNull() ?: continue
        attempts++

        when {
            guess < targetNumber -> println("더 큰 숫자입니다.")
            guess > targetNumber -> println("더 작은 숫자입니다.")
            else -> println("정답입니다! $attempts 번 만에 맞추셨습니다.")
        }
    } while (guess != targetNumber)
}

위 예제에서는 when 문과 do-while 문을 사용하여 숫자를 맞추는 간단한 게임을 만들었습니다. 사용자가 입력한 숫자가 정답보다 크거나 작은지 안내하며, 정답을 맞출 때까지 반복합니다.

4. 결론

Kotlin의 제어문인 if, when, for, while 문은 다양한 상황에서 프로그램의 흐름을 제어하는 데 유용하게 사용됩니다. 특히 when 문은 자바의 switch 문보다 훨씬 강력하며, if 문을 표현식으로 사용할 수 있는 점은 Kotlin의 큰 장점 중 하나입니다.

이 포스팅에서는 제어문의 기본적인 사용법과 예제를 통해 제어문이 어떻게 활용되는지 살펴보았습니다.

반응형