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

اللون في Ruby

استخدام الدوائر في Ruby لتنفيذ نفس الكود عدة مرات. في هذا الفصل سيتم شرح جميع جمل الدوائر المدعومة من Ruby.

Ruby while الجملة

النحو

while conditional [تفعل]
   code
نهاية

أو

النحو

while conditional [:]
   code
نهاية

عندما الشرط عندما تكون صحيحة، تفعل code.

في الجملة يمكن تجاهل كلمة do أو :. ولكن إذا كنت تريد كتابة جملة while في سطر واحد، فيجب استخدام do أو : لتقسيم الشروط أو الفقرات البرمجية.

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
while $i < $num  تفعل
   puts("في جملة الدائرة i = #$i" )
   $i +=1
نهاية

نتيجة النسخة التجريبية أعلاه هي:

في جملة الدائرة i = 0
في جملة الدائرة i = 1
في جملة الدائرة i = 2
في جملة الدائرة i = 3
في جملة الدائرة i = 4

Ruby while المعدل

النحو

كود while شرط
أو
begin 
  code 
تنتهي الدائرة while conditional

عندما الشرط عندما تكون صحيحة، تفعل code.

إذا while المعدل يتبع rescue أو جملة ensure begin الجملة،code بعد الشرط التحقق مرة واحدة قبل التنفيذ.

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
begin
   puts("في جملة الدائرة i = #$i" )
   $i +=1
تنتهي الدائرة while $i < $num

نتيجة النسخة التجريبية أعلاه هي:

في جملة الدائرة i = 0
في جملة الدائرة i = 1
في جملة الدائرة i = 2
في جملة الدائرة i = 3
في جملة الدائرة i = 4

Ruby until الجملة

النحو

حتى conditional [تفعل]
   code
نهاية

عندما الشرط عندما يكون خطأ code.

في الجملة يمكن تجاهل كلمة do. ولكن إذا كنت تريد كتابة جملة until في سطر واحد، فيجب استخدام do لتقسيم الشروط أو الفقرات البرمجية.

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
حتى $i > $num  تفعل
   puts("في جملة الدائرة i = #$i" )
   $i +=1;
نهاية

نتيجة النسخة التجريبية أعلاه هي:

في جملة الدائرة i = 0
في جملة الدائرة i = 1
في جملة الدائرة i = 2
في جملة الدائرة i = 3
في جملة الدائرة i = 4
في جملة الدائرة i = 5

Ruby until المعدل

النحو

code until conditional
أو
begin
   code
end until conditional

عندما الشرط عندما يكون code.

إذا until المعدل يتبع rescue أو جملة ensure begin الجملة،code بعد الشرط التحقق مرة واحدة قبل التنفيذ.

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
$i = 0
$num = 5
begin
   puts("في جملة الدائرة i = #$i" )
   $i +=1;
end until $i > $num

نتيجة النسخة التجريبية أعلاه هي:

في جملة الدائرة i = 0
في جملة الدائرة i = 1
في جملة الدائرة i = 2
في جملة الدائرة i = 3
في جملة الدائرة i = 4
في جملة الدائرة i = 5

Ruby for الجملة

النحو

for variable [, variable ...] in expression [do]
   code
نهاية

يتم حساب التعبير أولاً للحصول على كائن، ثم تنفيذ expression يتم تنفيذ كل عنصر منه مرة واحدة code.

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
للمحاولات i في 0..5
   puts "قيمة المتغير المحلي هي #{i}"
نهاية

في هذا السياق، نحن نحدد نطاق 0..5. جملة for i in 0..5 تسمح لـ i بالتغير من 0 إلى 5 (بما في ذلك 5).

نتيجة النسخة التجريبية أعلاه هي:

قيمة المتغير المحلي هي 0
قيمة المتغير المحلي هي 1
قيمة المتغير المحلي هي 2
قيمة المتغير المحلي هي 3
قيمة المتغير المحلي هي 4
قيمة المتغير المحلي هي 5

for...in الدائرة تقريبًا متطابقة مع:

(expression).each do |variable[, variable...]| code end

لكن دائرة for لا تخلق مجالاً جديدًا للمتغيرات المحلية.

يمكن تجاهل do في النحو. ولكن إذا كنت تريد كتابة for في سطر واحد، فيجب استخدام do لتجزئة شرط أو كتلة البرنامج.

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
(0..5).each do |i|
   puts "قيمة المتغير المحلي هي #{i}"
نهاية

نتيجة النسخة التجريبية أعلاه هي:

قيمة المتغير المحلي هي 0
قيمة المتغير المحلي هي 1
قيمة المتغير المحلي هي 2
قيمة المتغير المحلي هي 3
قيمة المتغير المحلي هي 4
قيمة المتغير المحلي هي 5

Ruby break الجملة

النحو

break

انهاء أعمق دائرة من الدوائر. إذا تم استدعاؤها داخل الكتلة، يتم إنهاء تنفيذ الكتلة (الطريقة تعود nil).

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
للمحاولات i في 0..5
   إذا i > 2
      break
   نهاية
   puts "قيمة المتغير المحلي هي #{i}"
نهاية

نتيجة النسخة التجريبية أعلاه هي:

قيمة المتغير المحلي هي 0
قيمة المتغير المحلي هي 1
قيمة المتغير المحلي هي 2

Ruby next الجملة

النحو

next

القفز إلى تكرار التكرار التالي. إذا تم استدعاؤها داخل الكتلة، يتم إنهاء تنفيذ الكتلة (yield يعود التعبير nil).

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
للمحاولات i في 0..5
   إذا i < 2
      next
   نهاية
   puts "قيمة المتغير المحلي هي #{i}"
نهاية

نتيجة النسخة التجريبية أعلاه هي:

قيمة المتغير المحلي هي 2
قيمة المتغير المحلي هي 3
قيمة المتغير المحلي هي 4
قيمة المتغير المحلي هي 5

Ruby redo الجملة

النحو

redo

تبدأ تكرار تكرار أعمق من الدائرة الحالية، دون فحص شرط الدائرة. إذا تم استدعاؤها داخل الكتلة، تبدأ من جديد yield أو call.

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
للمحاولات i في 0..5
   إذا i < 2
      puts "قيمة المتغير المحلي هي #{i}"
      redo
   نهاية
نهاية

سيكون لهذا النتيجة التالية، وسيحدث دورة لا نهائية:

قيمة المتغير المحلي هي 0
قيمة المتغير المحلي هي 0
............................

Ruby retry الجملة

ملاحظة: الإصدار 1.9 وما بعده لا يدعم استخدام retry داخل الدوال.

النحو

retry

إذا retry تظهر في جملة rescue من within جملة begin، تبدأ الجملة من بداية الجسم begin.

begin
   do_something   # استثنائية مطلقة
rescue
   # معالجة الأخطاء
   retry          # يبدأ من جديد من begin
نهاية

إذا كان retry يظهر داخل التكرار أو الكتلة أو جسم تعبير for، فإن التكرار يبدأ من جديد. سيتم تقييم معلمات التكرار مرة أخرى.

للأرقام في 1..5
   retry إذا كان some_condition # يبدأ من جديد من i == 1
نهاية

مثال عبر الإنترنت

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-
للأرقام في 1..5
   retry إذا كان i > 2
   puts "قيمة المتغير المحلي هي #{i}"
نهاية

سيكون لهذا النتيجة التالية، وسيحدث دورة لا نهائية:

قيمة المتغير المحلي هي 1
قيمة المتغير المحلي هي 2
قيمة المتغير المحلي هي 1
قيمة المتغير المحلي هي 2
قيمة المتغير المحلي هي 1
قيمة المتغير المحلي هي 2
............................