حلقه‌ها در روبی

انواع حلقه در روبی: while، until، for، times، each و loop

انواع حلقه در روبی

روبی چندین نوع حلقه دارد. برخلاف برخی زبان‌ها، در روبی each رایج‌ترین روش حلقه است.

۱. حلقه while

تا وقتی شرط درست باشد تکرار می‌شود:

i = 0
while i < 5
  puts "شمارنده: #{i}"
  i += 1
end

۲. حلقه until

تا وقتی شرط غلط باشد تکرار می‌شود (برعکس while):

i = 0
until i >= 5
  puts "شمارنده: #{i}"
  i += 1
end

۳. حلقه for...in

# با Range
for i in 1..5
  puts i
end

# با آرایه
for fruit in ["سیب", "موز", "پرتقال"]
  puts fruit
end

# با هش
for key, value in { name: "علی", age: 25 }
  puts "#{key}: #{value}"
end
در روبی، for...in کمتر استفاده می‌شود. به جای آن از each استفاده می‌کنند.

۴. متد times

برای تکرار n بار:

5.times do |i|
  puts "تکرار #{i + 1}"
end

# یک‌خطی
3.times { puts "سلام!" }

۵. متد each (رایج‌ترین)

# آرایه
["آ", "ب", "ج"].each do |letter|
  puts letter
end

# Range
(1..5).each { |n| puts n }

# هش
{ a: 1, b: 2 }.each do |key, value|
  puts "#{key}: #{value}"
end

۶. متد upto و downto

# صعودی
1.upto(5) { |n| puts n }    # => 1, 2, 3, 4, 5

# نزولی
5.downto(1) { |n| puts n }  # => 5, 4, 3, 2, 1

۷. متد step

# با گام 2
1.step(10, 2) { |n| puts n }  # => 1, 3, 5, 7, 9

# نزولی
10.step(1, -3) { |n| puts n } # => 10, 7, 4, 1

۸. حلقه loop (بی‌نهایت)

loop do
  puts "این بی‌نهایت تکرار می‌شود!"
  break  # بدون break متوقف نمی‌شود!
end
حلقه loop بدون break بی‌نهایت است! حتماً از break استفاده کنید.

حلقه‌های تو در تو

# جدول ضرب
(1..5).each do |i|
  (1..5).each do |j|
    print "#{i * j}\t"
  end
  puts
end

حلقه while یک‌خطی (Modifier)

i = 0
puts i += 1 while i < 5

reverse_each

(1..5).reverse_each { |n| puts n }  # => 5, 4, 3, 2, 1

map و collect

این متدها هم در واقع حلقه هستند که نتیجه را برمی‌گردانند:

squared = (1..5).map { |n| n ** 2 }
puts squared.inspect  # => [1, 4, 9, 16, 25]

انتخاب نوع حلقه

کاربردبهترین حلقه
تکرار n بارn.times
پیمایش آرایهarr.each
پیمایش Range(a..b).each
تا وقتی شرط درستwhile
تا وقتی شرط غلطuntil
شمارش صعودیupto
شمارش نزولیdownto
با گام مشخصstep

خلاصه

این مبحث بخشی از دوره آموزش کامل روبی است.

ابزارهای مرتبط