다중 값을 처리하는 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 # 주말이것은 ||를 if/elsif 체인으로 연결하는 것보다 훨씬 깔끔합니다.
하나의 when 안에서 값 타입을 혼합할 수도 있습니다. 문자열, 범위, 정규식 패턴 모두 ===에 응답하는 대상일 뿐입니다:
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각 `branch`를 한눈에 읽기 쉽게 만드는 형태를 선택하세요.
챌린지
쉬움단일 문자(한 줄의 입력)를 읽습니다. 다중 값 when branches가 있는 case를 사용하여 다음 중 하나를 출력하세요:
vowel: 입력이a, e, i, o, u중 하나인 경우 (대소문자 구분 없음, 입력을 먼저 소문자로 변환하세요)digit: 입력이0..9중 하나인 경우 (범위를 사용하세요)punctuation: 입력이.,,,!,?중 하나인 경우other: 그 외의 모든 경우
입력을 단일 문자 문자열로 처리하세요. "0".."9"와 같은 범위를 사용하여 digit 분기를 테스트하세요.
입력 E에 대한 출력은 vowel입니다. 7인 경우 digit이며, !인 경우 punctuation입니다.
직접 해보기
ch = gets.chomp
# TODO: case ch.downcase ... 다중 값 when 분기와 함께
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.