دورة روبي
روبي في الحلقة لأداء نفس الكتلة من التعليمات البرمجية عدة مرات. هذا القسم سيأتي تفصيل جميع حلقات الدعم روبي.
روبيفي حين بيان
قواعد
while conditional [do] code end
أو
<pre> while conditional [:] code end
عندماالشرطيصحيحا، فإنه ينفذالتعليمات البرمجية.
أو القيام بناء الجملة: يمكنك حذفها. ولكن لكتابة صيغة بينما في خط، أو يجب عليك القيام به: التعبير الشرطي بعيدا أو برنامج كتل.
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("在循环语句中 i = #$i" ) $i +=1 end
إخراج المثال أعلاه هو:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
روبيبينما معدل
قواعد
code while condition 或者 begin code end while conditional
عندماالشرطيصحيحا، فإنه ينفذالتعليمات البرمجية.
إذاأثناء وجودهفي المعدل مع أيالانقاذأو في وقت لاحقتبدأبيان تضمنبندا،سيتم تنفيذ التعليمات البرمجية مرة واحدة قبل الحكمالمشروط.
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1 end while $i < $num
إخراج المثال أعلاه هو:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
روبيحتى البيانات
until conditional [do] code end
عندماالشرطيهو زائف، تنفيذالتعليمات البرمجية.
جملة المهام يمكن حذفها. ولكن في الكتابة حتى الصيغة، يجب عليك القيام به التعبير أو برنامج كتل مشروطة بعيدا في الصف.
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("在循环语句中 i = #$i" ) $i +=1; end
إخراج المثال أعلاه هو:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
روبيحتى المعدلات
قواعد
code until conditional 或者 begin code end until conditional
عندماالشرطيهو زائف، تنفيذالتعليمات البرمجية.
إذاحتىالآن معدل في بيان أن لايبدأالإنقاذ أو في وقت لاحق ضمانبند،سيتم تنفيذ التعليمات البرمجية مرة واحدة قبل الحكمالمشروط.
أمثلة
#!/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
روبيلبيان
قواعد
for variable [, variable ...] in expression [do] code end
التعبير الحساب الأول للحصول على كائن، ثمالتعبيرعن كل عنصر على حدةرمز.
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 puts "局部变量的值为 #{i}" end
هنا، حددنا مجموعة 0..5. بيان لأنني في 0..5 تسمح قيمة ط 0-5 (مع 5).
إخراج المثال أعلاه هو:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
ل... فيالحلقة ما يعادل بالضبط تقريبا إلى:
(expression).each do |variable[, variable...]| code end
ومع ذلك، لحلقة لا إنشاء نطاق جديد للمتغيرات المحلية.
جملة المهام يمكن حذفها. ولكن أن يكتب للصيغة في صف واحد، ثم يجب عليك القيام به التعبير أو برنامج كتل مشروطة على حدة.
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0..5).each do |i| puts "局部变量的值为 #{i}" end
إخراج المثال أعلاه هو:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
بيان كسرروبي
قواعد
break
إنهاء الحلقة الأعمق. إذا كنت قد يحتج داخل الكتلة، ويرتبط كتلة لإنهاء (إرجاع الأسلوب النيل).
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i > 2 then break end puts "局部变量的值为 #{i}" end
إخراج المثال أعلاه هو:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
روبيالعبارة التالية
قواعد
next
القفز إلى التكرار التالي من الحلقة. إذا كان الاتصال في كتلة إنهاء كتلة التنفيذ(تسفر عنالتعبير بإرجاع صفر).
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then next end puts "局部变量的值为 #{i}" end
إخراج المثال أعلاه هو:
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
بيان إعادتهروبي
قواعد
redo
إعادة تشغيل التكرار حلقة الأعمق، لم يتم تحديد شرط حلقة. إذا كان الاتصال في الكتلة، ثم قم بإعادة تشغيلالعائدأوالمكالمة.
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then puts "局部变量的值为 #{i}" redo end end
وهذا ينتج النتائج التالية، وسوف يدخل حلقة لا نهائية:
局部变量的值为 0 局部变量的值为 0 ............................
بيان إعادة المحاولةروبي
ملاحظة: 1.9 والإصدارات الأحدث لا تدعم إعادة المحاولة استخدامها في حلقة.
قواعد
retry
إذا ظهرتإعادة المحاولةفي التعبير تبدأ فقرة الإنقاذ، من البداية من الجسم تبدأ في إعادة بدء.
begin do_something # 抛出的异常 rescue # 处理错误 retry # 重新从 begin 开始 end
إذا ظهرت إعادة المحاولة في التكرار، أو للتعبير عن داخل الجسم، وإعادة بالتكرار، وتدعو داخل الكتلة. معلمات تكرار إعادة تقييمها.
for i in 1..5 retry if some_condition # 重新从 i == 1 开始 end
أمثلة
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1..5 retry if i > 2 puts "局部变量的值为 #{i}" end
وهذا ينتج النتائج التالية، وسوف يدخل حلقة لا نهائية:
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 ............................