English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل Ruby الأساسي

دليل Ruby المتقدم

الحكم في Ruby

يقدم Ruby أنواعًا متعددة من بنيات الشروط الشائعة. هنا، سنشرح جميع جمل الشروط والمزادات المتاحة في Ruby.

Ruby if...else الجملة

النحو

if شرط [then]
      code...
[elsif شرط [then]
      code...]...
[else
      code...]
انتهاء

x هو 1 تُستخدم التعبيرات لتنفيذ الشروط. القيم false و nil إذا كان خطأ، فإن جميع القيم الأخرى تعتبر صحيحة. يرجى ملاحظة أن Ruby تستخدم elsif وليس else if أو elif.

إذا الشروط كلمة if المعدلة تعني أن يتم تنفيذ الجملة على يسار if إذا كان الشرط على اليمين صحيحًا. أي إذا code. إذا كانت unless وال if العكس، أي إذا الشروط إذا لم يكن صحيحًا، يتم تنفيذ الجملة المحددة في else. code.

عادة نتجاهل الكلمة الحجزية then. إذا كنت ترغب في كتابة تعبير if كاملاً في سطر واحد، يجب استخدام then لفصل الشروط والنص البرمجي. مثلما هو موضح أدناه:

if a == 4 then a = 7 end

النموذج المتاح

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
x=1
if x > 2
   puts "x أكبر من 2"
elsif x <= 2 و x != 0
   puts "x هو 1"
أو
   puts "لا يمكن معرفة قيمة x"
انتهاء

نتائج النموذج أعلاه:

x 是 1

Ruby x هو 1 معدل

النحو

if

code if الشروط الشروط كلمة if المعدلة تعني أن يتم تنفيذ الجملة على يسار if إذا كان الشرط على اليمين صحيحًا. أي إذا code.

النموذج المتاح

#!/usr/bin/ruby
 
إذا كانت صحيحة، فتنفذ
$debug=1

نتائج النموذج أعلاه:

print "تحقق\n" if $debug

Ruby unless الجملة

النحو

التحقق
   code
[else
   code ]
انتهاء

unless الشروط [then] الشروط إذا كانت صحيحة، فتنفذ code. إذا كانت unless وال if العكس، أي إذا الشروط إذا كانت صحيحة، فتنفذ فقرة else المحددة code.

النموذج المتاح

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
x=1
unless x>2
   puts "x أقل من 2"
 أو
  puts "x أكبر من 2"
انتهاء

نتائج الطباعة في المثال أعلاه هي:

x أقل من 2

Ruby unless معدل

النحو

code unless الشروط

إذا الشروط إذا كانت صحيحة، فتنفذ code.

النموذج المتاح

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
$var = 1
print "1 -- هذا السطر ينشأ\n" if $var
print "2 -- هذا السطر لا ينشأ\n" unless $var
 
$var = false
print "3 -- هذا السطر ينشأ\n" unless $var

نتائج النموذج أعلاه:

1 -- هذا السطر ينشأ
3 -- هذا السطر ينشأ

Ruby حالة الجملة

النحو

case expression
[when expression [, expression ...] [then]
   code ]...
[else
   code ]
انتهاء

case يحدد أولاً expression للمطابقة وال�断ة، ثم يختار الفرع بناءً على نتائج المطابقة.

يستخدم ===مقارنة العملية when المحدد expression، إذا كانت متطابقة فتنفذ when جزء من المحتوى.

عادةً نتجنب الكلمة المفتاحية then. إذا كنت تريد كتابة when الكامل في سطر واحد، فيجب أن تكون then تفصل بين الشرط ومقطع الكود. كما يلي:

when a == 4 then a = 7 end

لذلك:

case expr0
when expr1, expr2
   stmt1
when expr3, expr4
   stmt2
أو
   stmt3
انتهاء

أساساً يشبه:

_tmp = expr0
if expr1 === _tmp || expr2 === _tmp
   stmt1
elsif expr3 === _tmp || expr4 === _tmp
   stmt2
أو
   stmt3
انتهاء

النموذج المتاح

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
 
$age = 5
حالة $age
عندما يكون 0 .. 2
    طبع "طفل رضيع"
عندما يكون 3 .. 6
    طبع "طفل"
عندما يكون 7 .. 12
    طبع "child"
عندما يكون 13 .. 18
    طبع "شاب"
أو
    طبع "أعمار أخرى"
انتهاء

نتائج الطباعة في المثال أعلاه هي:

طفل

عندما يتم تجاهل جزء "التعبير" من حالة، سيتم حساب التعبير الأول من شرط when يكون صحيحًا.

foo = خطأ
bar = صحيح
quu = خطأ
 
حالة
عندما foo ثم طبع 'foo هو صحيح'
عندما bar ثم طبع 'bar هو صحيح'
عندما quu ثم طبع 'quu هو صحيح'
انتهاء
# عرض "bar هو صحيح"