Menu
Coddy logo textTech

인라인 if / unless

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

Ruby에서는 단일 문장의 ifunless를 한 줄 수식어(modifier)로 배치할 수 있습니다. 거의 영어처럼 읽힙니다.

puts "Adult" if age >= 18
puts "Save your work" unless saved

이는 다음과 같습니다:

if age >= 18
  puts "Adult"
end

unless saved
  puts "Save your work"
end

인라인 형식은 메서드 상단에서의 가드 스타일 체크나 루프 내부에서의 일회성 조건부 업데이트에 매우 유용합니다:

return if name.nil? || name.empty?

counts = Hash.new(0)
words.each do |w|
  counts[w] += 1 unless w.start_with?("#")
end

삼항 연산자와 마찬가지로 짧은 문장에는 인라인 수정자(inline modifiers)를 사용하세요. 본문이 한 줄 이상인 경우, 대신 실제 if 블록을 작성하세요.

challenge icon

챌린지

쉬움

쉼표로 구분된 정수 목록을 읽습니다. 각 숫자에 대해 한 줄씩 출력하되, 숫자가 0이 아닌 경우에만 출력합니다:

  • n > 0 인 경우 positive: <n>를 출력합니다.
  • n >= 0아닌 경우 negative: <n>를 출력합니다.

두 줄 모두 인라인 수정자(inline modifier) 형태를 사용해야 합니다 (if 블록이나 else를 사용하지 마세요). 루프가 끝난 후, Skipped zeros: <count>를 출력합니다. 여기서 count는 0의 개수이며, 이 또한 if 블록 없이 계산해야 합니다 (count를 사용하세요).

입력이 3,-2,0,5,0인 경우, 출력은 다음과 같습니다:

positive: 3
negative: -2
positive: 5
Skipped zeros: 2

치트 시트

Ruby는 단일 문장 끝에 ifunless를 인라인 수식어로 사용하는 것을 허용합니다:

puts "Adult" if age >= 18
puts "Save your work" unless saved

가드 절(guard clauses)이나 간단한 조건부 업데이트에 유용합니다:

return if name.nil? || name.empty?

counts[w] += 1 unless w.start_with?("#")

인라인 수식어는 단일 행 본문에만 사용하세요. 그보다 긴 경우에는 전체 if 블록을 사용하세요.

직접 해보기

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

# TODO: 각 숫자에 대해 인라인 `if` / `unless`를 사용하여 출력하세요.
# TODO: count를 사용하여 Skipped zeros: <n>을 출력하세요.
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨