我是新的紅寶石。希望知道如何在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開發者,之前 –