Menu
Coddy logo textTech

Unless 문

Coddy Ruby 여정의 기초 섹션에 포함된 레슨 — 88개 중 25번째.

루비는 무언가가 참이 아닌 경우에만 코드를 실행하고 싶을 때 조건을 표현하는 독특한 방식을 제공합니다. unless 문은 본질적으로 if의 반대입니다.

if를 사용하면 조건이 참(true)일 때 코드가 실행됩니다. unless를 사용하면 조건이 거짓(false)일 때 코드가 실행됩니다:

logged_in = false

unless logged_in
  puts "Please log in to continue"
end

이것은 if !logged_in을 작성하는 것과 동일하지만, unless가 종종 더 자연스럽게 읽힙니다. "해당 조건이 참이 아닌 한 이것을 실행하라"고 생각하세요.

unlesselse와 함께 사용할 수도 있습니다:

age = 20

unless age < 18
  puts "Access granted"
else
  puts "Access denied"
end

하지만 else 블록이 필요할 때는 if를 사용하는 것이 보통 더 명확합니다. unless 문은 대안적인 경로 없이 단순한 부정 조건만 있을 때 빛을 발합니다. 한눈에 코드를 더 읽기 쉽게 만드는 쪽을 선택하세요.

challenge icon

챌린지

쉬움

다음과 같은 변수들이 제공됩니다:

has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

아래의 각 시나리오를 평가하기 위해 unless 문을 사용하세요. 조건이 거짓일 때(즉, unless 블록이 실행될 때)만 지정된 메시지를 출력하세요.

  1. has_tickettrue가 아니면, "Please purchase a ticket"을 출력하세요.
  2. is_viptrue가 아니면, "VIP access required"를 출력하세요.
  3. items_in_cart0보다 크지 않으면, "Your cart is empty"를 출력하세요.
  4. battery_level20보다 크지 않으면, "Low battery warning"을 출력하세요.
  5. is_chargingtrue이거나 battery_level50보다 크지 않다면, "Please charge your device"를 출력하세요.

각 메시지는 별도의 줄에 표시되어야 합니다. unless 블록을 트리거하는 조건에 대해서만 메시지를 출력하세요.

치트 시트

unless 문은 조건이 거짓(false)일 때 코드를 실행하며, 이는 if와 반대되는 개념입니다:

logged_in = false

unless logged_in
  puts "Please log in to continue"
end

이것은 if !logged_in과 동일하지만, 종종 더 자연스럽게 읽힙니다.

unlesselse와 함께 사용할 수도 있습니다:

age = 20

unless age < 18
  puts "Access granted"
else
  puts "Access denied"
end

하지만 unlesselse 블록이 없는 단순한 부정 조건에 사용하는 것이 가장 좋습니다. 대안적인 경로(alternative path)가 필요한 경우에는 보통 if를 사용하는 것이 더 명확합니다.

직접 해보기

# 변수들이 이미 정의되어 있습니다
has_ticket = false
is_vip = true
items_in_cart = 0
battery_level = 15
is_charging = false

# TODO: 아래에 코드를 작성하세요
# unless 문을 사용하여 각 조건을 확인하고 적절한 메시지를 출력하세요
quiz icon실력 점검

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

기초의 모든 레슨