حلقهها در روبی
انواع حلقه در روبی: 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 |
خلاصه
while— تا وقتی شرط درست استuntil— تا وقتی شرط غلط استfor...in— پیمایش (کمتر استفاده میشود)times— تکرار n بارeach— رایجترین روش پیمایشupto/downto— شمارش صعودی/نزولیstep— با گام مشخصloop— حلقه بینهایت (با break)
این مبحث بخشی از دوره آموزش کامل روبی است.