红宝石领先零和增量

Sim*_*mon 2 ruby loops

我正在研究如何在ruby中获得一个领先的零,我发现了解决方案:使用%02d"现在,我想做一个循环,并保持零!当我做这样的事情

i = "%02d" % "1".to_i
until (i == 10)
  puts i
  i += 1
end
Run Code Online (Sandbox Code Playgroud)

我有一个错误"无法将FixNum转换为字符串".所以我决定这样做

i = "%02d" % "1".to_i
"01"
until (i == 10)
  puts i
  i = i.to_i
  i += 1
end
Run Code Online (Sandbox Code Playgroud)

所以,这一次,循环工作,但只有第一个数字领先0.我没有想法,所以我很感激一点帮助!

Jon*_*eet 9

我不是一个Ruby开发者,而且从根本上我认为你需要分离出的主意数量 i,以及文本表示与一家领先的0,所以东西,如:

for i in (1..10)
  puts "%02d" % i
end
Run Code Online (Sandbox Code Playgroud)

(从其他答案中可以看出,有很多方法可以对循环本身进行编码.)

这里i总是一个数字,但表达式"%02d" % i格式化i为两位数字,仅用于显示目的.


cor*_*ard 6

在准备好实际输出之前,不要转换为字符串进行输出.通常,您不会增加字符串值.

0.upto(10) { |i| puts "%02d" % i }
Run Code Online (Sandbox Code Playgroud)