Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المعامل الثلاثي (Ternary Operator)

جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy — الدرس 40 من 56.

المعامل الثلاثي (ternary operator) هو اختصار من سطر واحد لجملة 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

استخدم المعامل الثلاثي (ternary) عندما تُرجع كلتا الشعبتين قيمًا قصيرة. إذا كانت أي من الشعبتين تحتاج إلى أكثر من تعبير واحد، فارجع إلى 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 هو:

  • positive عندما يكون n > 0
  • negative عندما يكون n < 0
  • zero عندما يكون n == 0

تلميح: استخدم المعامل الثلاثي المتداخل، condition ? a : (other_condition ? b : c).

للمدخل 5 يكون المخرج 5 is positive. وللمدخل 0 يكون 0 is zero.

ورقة مرجعية

يعد العامل الثلاثي (ternary operator) اختصاراً من سطر واحد لـ 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اختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق العمليات