Menu
Coddy logo textTech

다중 값을 처리하는 when 문

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

하나의 when 절은 쉼표로 구분된 여러 값 중 하나와 일치할 수 있습니다. 대상이 그 중 하나와 같으면 해당 분기가 실행됩니다.

day = "Sat"
kind = case day
       when "Sat", "Sun"                          then "weekend"
       when "Mon", "Tue", "Wed", "Thu", "Fri"  then "weekday"
       end
puts kind   # weekend

이것은 if/elsif 문에서 ||를 연결하는 것보다 훨씬 더 깔끔합니다.

하나의 when 절에서 여러 값 타입을 섞어서 사용할 수도 있습니다. 문자열, 범위(range), 정규식 패턴 등 === 연산자에 응답하는 모든 것들을 사용할 수 있습니다:

def describe(x)
  case x
  when 0, nil       then "empty"
  when 1..9         then "small"
  when 10..99       then "medium"
  when /^huge:/i    then "flagged huge"
  end
end

각 분기를 한눈에 읽기 쉽게 만드는 형식을 선택하세요.

challenge icon

챌린지

쉬움

단일 문자(입력 한 줄)를 읽습니다. 다중 값 when 분기가 있는 case를 사용하여 다음 중 하나를 출력하세요:

  • vowel: 입력이 a, e, i, o, u 중 하나인 경우 (대소문자 구분 없음, 먼저 입력을 소문자로 변환하세요)
  • digit: 입력이 0..9 중 하나인 경우 (범위를 사용하세요)
  • punctuation: 입력이 ., ,, !, ? 중 하나인 경우
  • other: 그 외의 모든 경우

입력을 단일 문자 문자열로 취급하세요. "0".."9"와 같은 범위를 사용하여 digit 분기를 테스트하세요.

입력이 E이면 출력은 vowel입니다. 7이면 digit이고, !이면 punctuation입니다.

치트 시트

when 절은 쉼표로 구분된 여러 값을 일치시킬 수 있습니다:

case day
when "Sat", "Sun" then "weekend"
when "Mon", "Tue", "Wed", "Thu", "Fri" then "weekday"
end

동일한 case 문 내에서 문자열, 범위(range), 그리고 정규식 패턴을 혼합하여 사용할 수 있습니다:

case x
when 0, nil    then "empty"
when 1..9      then "small"
when /^huge:/i then "flagged huge"
end

직접 해보기

ch = gets.chomp

# TODO: case ch.downcase ... 다중 값 when 분기 사용
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨