在ruby中循环循环(noob)

时间:2010-02-15 01:53:28

标签: ruby loops while-loop

n = 0
m = 40
o = 0
while n < m 
n = n + 1
end
while n = m 
o = o + 1 
n = 0 
end

使用那段代码,最好的方法是什么,一旦它通过第二个循环,它将回到第一个???

欢迎任何帮助这位初学者的帮助。 :)

3 个答案:

答案 0 :(得分:1)

你在找这样的东西吗?

n = 0
m = 40
o = 0
while n < m 
  n = n + 1
  if (n == m) {
    o = o + 1
    n = 0
  }
  // as pointed out by Samir, you might want to put
  // termination condition here, else it will loop infinitely
end

答案 1 :(得分:1)

不完全确定你给了我们足够的信息来解决这个问题。我不确定你要做什么。

在Ruby中使用像这样的东西是不寻常的。有很多更好的迭代方法。例如,如果您正在遍历数组,则可以执行以下操作:

my_array.each do |e|
   # e is the next element of my_array
end

如果你走过一个字符串,你可以这样做:

my_string.each_char do |c|
   # c is the next character in my_string
end

如果你真的想要一个计数器,你可以将each_with_index用于数组或字符串:

(1..my_string.size).each do |i|
   c = my_string[i - 1]
   # now c = next character, i = index
end

我承认,并非直接回答您的问题,但DJ&amp; DigitalRoss是正确的,你似乎正在努力建立嵌套循环。

答案 2 :(得分:0)

嵌套循环,也许?

你在寻找这样的东西:

(0..2).each do |o|
  (0..4).each do |n|
    p [o, n]
  end
end

根据需要调整循环边界......