IMCAT.DEV
로그인 가입
Kotlin 입문 문법

Kotlin 제어문 (if, when)

Kotlin 제어문 (if, when) — 초급

제어문 (if, when)

1. 도입 (왜 배워야 하는가)

제어문은 프로그래밍에서 흐름을 제어하는 중요한 도구입니다. 조건에 따라 코드의 실행 경로를 변경할 수 있게 해주므로, 다양한 로직을 구현할 수 있습니다. 예를 들어, 사용자가 입력한 값에 따라 다른 동작을 수행해야 하는 상황에서 제어문이 필수적입니다.

제어문이 없으면 프로그램은 주어진 순서대로만 실행되며, 사용자의 입력이나 프로그램의 상태에 따라 유연하게 대응할 수 없습니다. 이는 실무에서 복잡한 애플리케이션을 개발할 때 큰 제약이 될 수 있습니다. 따라서 제어문을 잘 이해하고 활용하는 것은 프로그래머로서 필수적인 역량입니다.

2. 핵심 개념 설명

2.1 if 문

if 문은 특정 조건이 참인지 거짓인지에 따라 다른 행동을 취할 수 있게 해줍니다. 마치 교차로에서 신호등에 따라 차가 멈추거나 진행하는 것과 비슷합니다.

관련 용어 정리

용어설명
조건식true 혹은 false로 평가되는 식
블록문조건이 참일 때 실행되는 코드
else 문조건이 false일 때 실행되는 코드

2.2 when 문

when 문은 여러 조건을 비교할 수 있는 구조로, switch-case 문과 비슷합니다. 특정 상황에서 어떤 행동을 선택해야 할 때 유용합니다. 예를 들어, 메뉴에서 선택한 항목에 따라 다른 작업을 수행하는 경우입니다.

3. 기본 코드 예제

3.1 if 문 예제

fun main() {
    val score = 85

    if (score >= 90) {
        println("A")
    } else if (score >= 80) {
        println("B")
    } else {
        println("C")
    }
}
  • 실행 결과: B
  • 코드 설명:
  • - score라는 변수를 85로 초기화합니다. - 첫 번째 조건 score >= 90이 false이므로 첫 번째 블록은 실행되지 않습니다. - 두 번째 조건 score >= 80이 true이므로 "B"가 출력됩니다. - 마지막 else 블록은 실행되지 않습니다.

    3.2 when 문 예제

    fun main() {
        val fruit = "apple"
    
        when (fruit) {
            "banana" -> println("바나나입니다.")
            "apple" -> println("사과입니다.")
            "orange" -> println("오렌지입니다.")
            else -> println("알 수 없는 과일입니다.")
        }
    }
  • 실행 결과: 사과입니다.
  • 코드 설명:
  • - fruit 변수에 "apple"을 할당합니다. - when 문 내에서 "apple"에 해당하는 경우가 발견되므로 "사과입니다."가 출력됩니다. - 다른 블록은 실행되지 않습니다.

    4. 실전 활용 예제

    4.1 쇼핑몰 장바구니 구현

    사용자가 장바구니에 담은 상품의 수에 따라 배송비를 결정하는 상황에서 if 문을 사용합니다.

    fun calculateShippingCost(itemCount: Int): Int {
        return if (itemCount > 5) {
            0 // 무료 배송
        } else {
            5000 // 5,000원의 배송비
        }
    }

    4.2 사용자 입력 처리

    사용자가 선택한 메뉴에 따라 다른 기능을 실행하는 경우 when 문을 활용할 수 있습니다.

    fun userChoice(choice: Int) {
        when (choice) {
            1 -> println("계좌 조회")
            2 -> println("입금하기")
            3 -> println("출금하기")
            else -> println("잘못된 선택입니다.")
        }
    }

    5. 흔한 실수와 주의사항

    5.1 if 문에서 조건을 잘못 설정

  • 잘못된 코드:
  • if (score = 90) { // '='를 사용, 잘못된 대입 연산
        println("A")
    }
  • 올바른 코드:
  • if (score  90) { // ''를 사용, 비교 연산
        println("A")
    }

    5.2 when 문의 default 케이스를 놓치는 경우

  • 잘못된 코드:
  • when (fruit) {
        "banana" -> println("바나나입니다.")
        "apple" -> println("사과입니다.")
        // 기본 케이스 없음
    }
  • 올바른 코드:
  • when (fruit) {
        "banana" -> println("바나나입니다.")
        "apple" -> println("사과입니다.")
        else -> println("알 수 없는 과일입니다.") // 기본 케이스 추가
    }

    6. 정리

  • 제어문은 프로그램의 흐름을 제어하는 데 필수적입니다.
  • if 문은 조건에 따라 다른 코드를 실행하게 해줍니다.
  • when 문은 여러 조건을 쉽게 비교할 수 있게 해줍니다.
  • 조건문을 사용할 때는 비교 연산자와 대입 연산자를 혼동하지 않도록 주의해야 합니다.
  • 다음에는 반복문(while, for)에 대해 학습하면 좋습니다.