這是否有幫助?我不知道你在做什麼。
5.times do |count|
puts 'In condition ' + %w(one two three four five)[count]
end
的5.times do |count|
將excecute塊五次count
從零開始並且每次遞增。 %w(one two three four five)
與["one", "two", "three", "four", "five"]
相同。
如果你想連續做五件不同的事情,你不需要循環。只要把報表中的行:
# do thing 1
# do thing 2
# do thing 3
# ...
編輯:
「我有一個數組,我想通過循環,但陣列中的每個元素需要通過每一次不同的條件然後在第一個條件下重新啓動。「
要遍歷數組不休,對測試條件的每個元素:
arr = ['sdfhaq', 'aieei', 'xzhzdwz']
loop do
arr.each do |x|
case x
when /..h/
puts 'There was a \'h\' at the third character.'
when /.{6}/
puts 'There were at least six characters.'
else
puts 'None of the above.'
end
end
end
編輯2:
「感謝您的答覆,我想要做的是循環通過數組的每個元素應用於10個不同的條件,例如:array [有100個元素]元素1獲取條件1元素2繼續條件2等等,因爲有10個條件是數組中的第11個元素將再次得到條件1等等。條件1條件2條件「
您將需要在數字上使用%
方法。
arr = Array.new(130) # an array of 130 nil elements.
num_conditions = 10
arr.each_with_index do |x, i|
condition = (i + 1) % num_conditions
puts "Condition number = #{condition}"
end
的更多信息:http://ruby-doc.org/core/classes/Fixnum.html#M001059
編輯3:
def send_an_email(email, server)
puts "Sending an email with the text #{email.inspect} to #{server}."
end
email_servers = ['1.1.1.1', '2.2.2.2']
emails = ['How are you doing?', 'When are you coming over?', 'Check out this link!']
emails.each_with_index do |email, i|
send_an_email email, email_servers[i % email_servers.length]
end
您可以修改email_servers
和emails
,並有它仍然可以工作,即使長改變。
對不起,我不明白你是什麼要求。爲什麼要循環? – 2010-06-30 17:20:21
我有一個數組,我想通過循環,但數組中的每個元素需要每次都經歷不同的條件,然後在第一個條件重新啓動。 – rahrahruby 2010-06-30 17:28:21
您應該編輯您的問題,以添加關於您實際嘗試執行的操作的更多詳細信息。這聽起來像你可能會錯誤的。 – mckeed 2010-06-30 17:32:27