شرط if...elsif...else در روبی
ساختار شرطی if، elsif، else، unless و شرطهای تو در تو در روبی
ساختار شرط if
سادهترین ساختار شرطی در روبی if است:
age = 20
if age >= 18
puts "شما بزرگسال هستید"
end
if...else
age = 15
if age >= 18
puts "بزرگسال"
else
puts "کودک"
end
if...elsif...else
برای چند شرط پشت سر هم:
score = 17
if score >= 18
puts "عالی! 🌟"
elsif score >= 15
puts "خوب"
elsif score >= 10
puts "قبول"
else
puts "مردود"
end
unless — برعکس if
unless یعنی «اگر نه» — وقتی شرط غلط باشد اجرا میشود:
is_raining = false
unless is_raining
puts "هوا صاف است — بیرون برو!"
end
# معادل:
if !is_raining
puts "هوا صاف است"
end
شرط یکخطی (Modifier if)
روبی امکان نوشتن شرط در یک خط را میدهد:
# if در انتهای خط
puts "بزرگسال" if age >= 18
# unless در انتهای خط
puts "خطا" unless valid
عملگر سهتایی (Ternary)
یک شرط کوتاه در یک خط:
age = 20
status = age >= 18 ? "بزرگسال" : "کودک"
puts status # => بزرگسال
&& و || برای مقادیر
در روبی، && و || آخرین مقدار ارزیابیشده را برمیگردانند:
# || برای مقدار پیشفرض
name = nil
display_name = name || "ناشناس"
puts display_name # => ناشناس
# ||= برای انتساب شرطی
count ||= 0 # اگر count nil/false باشد، 0 میشود
شرطهای تو در تو
age = 25
has_license = true
if age >= 18
if has_license
puts "میتوانید رانندگی کنید"
else
puts "بزرگسال هستید اما گواهینامه ندارید"
end
else
puts "کودک هستید"
end
truthy و falsy
در روبی، فقط nil و false falsy هستند. همه چیز دیگر truthy است — حتی 0 و ""!
puts "0 is truthy" if 0 # => چاپ میشود!
puts "empty string" if "" # => چاپ میشود!
puts "nil" if nil # => چاپ نمیشود
puts "false" if false # => چاپ نمیشود
برخلاف برخی زبانها، در روبی
0 و "" truthy هستند!خلاصه
| ساختار | توضیح |
|---|---|
if...end | اگر شرط درست باشد |
if...else...end | اگر/در غیر این صورت |
if...elsif...else...end | چند شرط |
unless...end | اگر نه |
stmt if condition | شرط یکخطی |
cond ? a : b | عملگر سهتایی |
این مبحث بخشی از دوره آموزش کامل روبی است.