Ruby 对于循环,而i>;10英寸红宝石
要设置Ruby 对于循环,而i>;10英寸红宝石,ruby,for-loop,iterator,Ruby,For Loop,Iterator,要设置i及其最大值,并在Java中使用双迭代器,我将对循环使用,如下所示: for (i=1; i<10, i+=){ for (j=1; j<10; j++){ puts i (or whatever function) } } 或而循环 i = 1 while i < 10 puts i i += 1 end i=1 当我
i
及其最大值,并在Java中使用双迭代器,我将对循环使用,如下所示:
for (i=1; i<10, i+=){
for (j=1; j<10; j++){
puts i (or whatever function)
}
}
或而循环
i = 1
while i < 10
puts i
i += 1
end
i=1
当我<10
把我
i+=1
结束
这些while
循环是我提到的Java的(单迭代器)Ruby等价物,还是有其他方法可以为循环执行这些?Ruby-ish方法应该是每个
(1...10).each do |i|
puts i
end
或者进行双重迭代
(1...10).each do
(1...10).each do |j|
puts j
end
end
正如@maxwilliams和@sawa指出的,(1…10)
包含1到9,(1…10)
包含1到10。为什么不进行嵌套循环
for i in 1...10
for j in 1...10
puts i
end
end
顺便说一下,Ruby的等价物是1…10中的i的,而不是1…10中的i的,
,,在Ruby中我们不使用括号。他们不酷
这是Ruby中while
语句的一个示例
while $i < $num do
puts "Value for i is #{i}"
$i +=1
end
但是还有更多的循环!查看此以了解更多信息
但是如果您是Java程序员,您可以在Ruby中检查此链接,因为您很少使用for
循环。事实上,你从来不使用它。在Ruby中使用枚举数和块
for (i=1; i<10, i+=){
for (j=1; j<10; j++){
puts i (or whatever function)
}
}
还请注意,两者之间存在差异
(1..10).each do |i|
end
及
后者相当于
(1...10).each do |i|
(1...10).each do |j|
puts j
end
end
(1..9).each do |i|
end
事实上,。
将创建一个包含范围,而将创建一个独占范围
还值得一提的是,在Ruby中,很少使用索引来循环项目。因此,如果您的目标是打印出数组中的某些元素,那么您的代码不应该是
(1..10).each do |i|
p @items[i]
end
相反,你在集合中给每个人打电话
@items.each do |item|
p item
end
在某些情况下,比如在你的问题中,你甚至不需要一个范围(当你的循环从1开始时)。你可以使用时间
9.times do |i|
9.times do |j|
puts j
end
end
第一个结果是“在ruby中循环”。请注意,搜索基本信息总是比发布问题并等待答案快。您的代码建议您想做i<10
,但您的标题建议您想做i>10
。不要放一个误导性的/不相关的标题。@KevinDTimm我已经看过了,但我选择了使用StackOverflow的目标是询问熟练的程序员“有更好的方法吗”希望能看到有助于我理解的例子。这个问题完成了,如果您不方便的话,很抱歉。1…10
的源代码,而不是1…10
?我所看到的结果不支持这一点。我认为这是最干净的。不过,在他的原始问题中,他的循环仅从1到9。顺便说一句,您错过了`| i | `在你的第二个例子中。@MaxWilliams发现得很好,我想我应该做(1…10),我会编辑它。我故意省略了i
,因为我只是输出j
(1..10).each do |i|
p @items[i]
end
@items.each do |item|
p item
end
9.times do |i|
9.times do |j|
puts j
end
end