我是新的红宝石。希望知道如何在ruby中编写下面的循环。如何写红宝石般的负循环像(i = index; i> = 0; i - )
var index=25;
for (i = index; i >= 0; i--) {
print i;
}
我是新的红宝石。希望知道如何在ruby中编写下面的循环。如何写红宝石般的负循环像(i = index; i> = 0; i - )
var index=25;
for (i = index; i >= 0; i--) {
print i;
}
试试这个:
25.downto(0) { |i| puts i }
方式一:
25.downto(0) do |i|
puts i
end
我想你想出了范围可以不会像这样使用;-) –
这是别人的回答,因为删除了。当这正是'downto'的目的时,我不会想到使用范围。 –
对不起,那么。我被这个答案逗乐了,但是没有记住名字:-) –
有很多方法可以在Ruby中执行递减循环:
第一种方式:
for i in (10).downto(0)
puts i
end
方式二:
(10).downto(0) do |i|
puts i
end
第三条道路:
i=10;
until i<0
puts i
i-=1
end
第一种方式包含无关的parens,并不是很习惯。第二种方式也包含无关的parens,有一个不必要的'each',并且有不必要的引号和变量插值。第三种方式简单地被打破。 –
@MarkThomas:我认为多余的括号是为了让新Ruby用户看起来更尴尬,就像我一样。在Javascript中,同样的事情是可能的,但你需要使用两个点(小数点和属性访问器):'65536..toExponential()'。这是允许访问属性的一种有些尴尬的方式,所以我想象至少在其他语言中使用或者甚至知道可能使用点直接访问数字属性的情况是不常见的。 –
downto
是好的,但也有更多的通用step
。
25.step(0, -1){|i| puts i}
万一你是一个范围已经工作:
rng = 0..6
rng.reverse_each { |i| p i }
这里有一个简单的办法:
(0..25).reverse_each { |i| print i }
不起作用,范围不会下降。 – steenslag
@steenslag看起来你是对的。定影。 – edgerunner
注意,你的问题应该读作供(I =指数;我> = 0;我 - )' – KevinDTimm
如果你是一个新的红宝石,为什么你的个人资料说你有5年的回报经验? –
是啊mark :),我是一位php开发者,之前 –