Latest web development tutorials

دورة روبي

روبي في الحلقة لأداء نفس الكتلة من التعليمات البرمجية عدة مرات. هذا القسم سيأتي تفصيل جميع حلقات الدعم روبي.

روبيفي حين بيان

قواعد

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
............................