Menu
Coddy logo textTech

삼항 연산자

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

삼항 연산자는 값을 반환하는 if/else 문에 대한 한 줄짜리 단축 표현입니다. 구문은 condition ? value_if_true : value_if_false입니다.

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status   # Eligible

다음과 같이 작성하는 것과 같습니다:

status = if age >= 18
           "Eligible"
         else
           "Not Eligible"
         end

두 분기 모두 짧은 값을 반환할 때는 삼항 연산자를 사용하세요. 어느 한쪽 분기라도 둘 이상의 표현식이 필요하다면, 실제 if/else 문으로 돌아가세요. 삼항 연산자에 너무 많은 내용을 담으면 가독성이 떨어집니다.

보간(interpolation)을 포함하여 다른 표현식 내부에서 직접 사용할 수 있습니다:

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1개 항목
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5개 항목
challenge icon

챌린지

쉬움

입력에서 정수 n을 읽습니다. 삼항 연산자를 사용하여(if/else 블록 없이), 정확히 다음을 출력하세요:

<n> is <label>

여기서 label은 다음과 같습니다:

  • n > 0일 때 positive
  • n < 0일 때 negative
  • n == 0일 때 zero

힌트: 중첩된 삼항 연산자 condition ? a : (other_condition ? b : c)를 사용하세요.

입력 5에 대한 출력은 5 is positive입니다. 0에 대해서는 0 is zero입니다.

치트 시트

삼항 연산자는 한 줄로 작성하는 if/else 단축 표현입니다: condition ? value_if_true : value_if_false

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"  # "Eligible"

삼항 연산자는 중첩될 수 있으며 문자열 보간(string interpolation) 내에서 사용될 수 있습니다:

count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"  # 5 items

# 중첩된 삼항 연산자
n = 3
label = n > 0 ? "positive" : (n < 0 ? "negative" : "zero")

삼항 연산자는 짧고 단순한 분기에만 사용하세요. 분기에 여러 식이 필요한 경우에는 if/else를 사용하는 것이 좋습니다.

직접 해보기

n = gets.to_i

# TODO: 삼항 연산자를 사용하여 레이블을 만든 다음 puts 하세요
quiz icon실력 점검

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

로직 및 흐름의 모든 레슨