Menu
Coddy logo textTech

Case / When에서의 범위

Coddy Ruby 여정의 로직 및 흐름 섹션에 포함된 레슨. 56개 중 8번째.

범위는 Ruby의 case 문에서 특히 빛을 발합니다. 많은 언어에서는 비교 연산자를 사용한 if/elsif 연쇄가 필요하지만, Ruby에서는 값과 범위를 직접 대조할 수 있습니다.

score = 78
grade = case score
        when 90..100 then "A"
        when 80..89  then "B"
        when 70..79  then "C"
        when 60..69  then "D"
        else              "F"
        end
puts grade  # C

내부적으로 when 70..79는 범위의 === 연산자를 사용하며, 이는 (70..79).include?(score)와 동일합니다.

case 형식은 긴 if/elsif 사다리보다 더 짧고, 읽기 쉬우며, 작성하기도 빠릅니다.

challenge icon

챌린지

쉬움

쉼표로 구분된 정수 나이 목록을 읽습니다. 각 나이를 ranges를 사용하는 case 문으로 분류합니다:

  • 0..12: Child
  • 13..19: Teen
  • 20..64: Adult
  • 65 이상: Senior
  • 그 외의 모든 값(음수): 건너뛰며, report에 포함되지 않습니다

0이 아닌 각 category에 대해 정해진 순서로 count 줄을 출력합니다: Child, Teen, Adult, Senior. 사람이 0명인 category는 건너뜁니다. count를 출력한 후, 음수(유효하지 않은) 나이의 개수인 n을 사용하여 Skipped: <n>을 출력합니다.

입력이 5,15,30,70,-3,40,12인 경우 출력은 다음과 같습니다:

Child: 2
Teen: 1
Adult: 2
Senior: 1
Skipped: 1

직접 해보기

ages = gets.chomp.split(",").map(&:to_i)

# TODO: case + ranges로 각 나이를 분류하고, 카테고리별 개수를 세어 보고서를 출력
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Ruby 컴파일러