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

Scala 제어문 (if, match)

Scala 제어문 (if, match) — 초급

제어문 (if, match)

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

제어문은 프로그래밍에서 조건에 따라 코드의 흐름을 제어하는 중요한 도구입니다. 실무에서는 사용자 입력, 데이터 처리, 비즈니스 로직 등에 따라 다양한 조건을 처리해야 하는 경우가 많습니다. 예를 들어, 쇼핑몰에서 사용자가 장바구니에 담은 상품의 수량에 따라 할인율을 달리 적용해야 할 때 제어문이 필요합니다.

만약 제어문을 잘 모르고 지나친다면, 복잡한 조건을 처리할 수 없거나, 잘못된 결과를 도출해 사용자에게 혼란을 줄 수 있습니다. 따라서 제어문을 이해하고 활용하는 능력은 프로그래머에게 필수적입니다.

2. 핵심 개념 설명

2.1 if 문

if 문은 주어진 조건이 참인지 거짓인지를 판단하여 그에 따라 코드를 실행하는 제어문입니다.

비유: 친구와의 약속에서 "비가 오면 영화관에 가고, 비가 안 오면 공원에 간다"라고 결정하는 것과 같습니다. 여기서 '비가 오면'이 조건이 됩니다.

2.2 match 문

match 문은 여러 조건을 간편하게 처리할 수 있는 방법입니다. 특정 값을 여러 경우에 따라 분기 처리할 수 있습니다.

비유: "음료를 선택할 때, '커피'이면 아메리카노, '차'이면 녹차, '주스'이면 오렌지 주스를 준다"와 같은 경우입니다. 선택된 음료에 따라 각각 다른 결과를 반환하는 구조입니다.

관련 용어 정리

용어설명
조건문특정 조건을 평가하여 실행할 코드를 결정하는 문
참/거짓조건의 평가 결과 (true/false)
분기문여러 조건에 따라 다른 흐름으로 분기하는 문

3. 기본 코드 예제

if 문 예제

val temperature = 25

if (temperature > 30) {
  println("더운 날씨입니다.")
} else {
  println("더운 날씨가 아닙니다.")
}
// 실행 결과: 더운 날씨가 아닙니다.
  • val temperature = 25: 온도를 25도로 설정합니다.
  • if (temperature > 30): 온도가 30도보다 큰지 확인합니다.
  • println("더운 날씨입니다."): 조건이 참이면 이 메시지를 출력합니다.
  • else: 조건이 거짓일 경우 실행될 코드를 정의합니다.
  • println("더운 날씨가 아닙니다."): 조건이 거짓이면 이 메시지를 출력합니다.
  • match 문 예제

    val fruit = "사과"
    
    fruit match {
      case "사과" => println("사과입니다.")
      case "바나나" => println("바나나입니다.")
      case _ => println("모르는 과일입니다.")
    }
    // 실행 결과: 사과입니다.
  • val fruit = "사과": 과일 변수를 '사과'로 설정합니다.
  • fruit match: 과일 변수를 기준으로 매칭을 시작합니다.
  • case "사과": 과일이 '사과'일 때 실행할 코드를 정의합니다.
  • println("사과입니다."): 조건에 맞아 출력됩니다.
  • case _: 모든 경우를 처리하는 기본 조건입니다.
  • 4. 실전 활용 예제

    예제 1: 쇼핑몰 장바구니 할인 적용

    val itemCount = 5
    val discount = itemCount match {
      case count if count >= 10 => "10% 할인"
      case count if count >= 5 => "5% 할인"
      case _ => "할인 없음"
    }
    println(discount)
    // 실행 결과: 5% 할인

    이 예제는 장바구니에 담긴 상품 수에 따라 할인율을 결정합니다. 5개 이상일 때 5% 할인을 적용합니다.

    예제 2: 로그인 상태 확인

    val isLoggedIn = false
    
    if (isLoggedIn) {
      println("환영합니다!")
    } else {
      println("로그인이 필요합니다.")
    }
    // 실행 결과: 로그인이 필요합니다.

    사용자가 로그인 상태인지 확인하고, 로그인 상태에 따라 다른 메시지를 출력합니다.

    5. 흔한 실수와 주의사항

    실수 1: 조건을 잘못 설정하기

    val number = 10
    if (number = 10) { // 잘못된 코드
      println("10입니다.")
    }
    // 수정: if (number == 10)
  • =는 대입 연산자, 는 비교 연산자입니다. 조건을 비교할 때는 항상 를 사용해야 합니다.
  • 실수 2: match 문에서 기본 조건을 빼먹기

    val animal = "개"
    
    animal match {
      case "고양이" => println("고양이입니다.")
      // case _ 가 없으면, "개"는 처리되지 않아 오류 발생
    }
    // 수정: case _ => println("모르는 동물입니다.")
  • 모든 경우를 처리할 기본 조건을 잊지 말아야 합니다.
  • 6. 정리

  • 제어문은 조건에 따라 코드의 흐름을 제어할 수 있는 필수 도구입니다.
  • if 문은 단일 조건을 평가하고, match 문은 여러 조건을 효율적으로 처리합니다.
  • 조건을 설정할 때는 비교 연산자 ==를 사용해야 하며, match 문에서는 기본 조건을 항상 포함해야 합니다.
  • 다음에 학습하면 좋은 주제는 함수 및 고차 함수입니다.