Ruby 有比条件检查更好的方法吗?转换效率会更高吗?

Ruby 有比条件检查更好的方法吗?转换效率会更高吗?,ruby,if-statement,conditional-operator,Ruby,If Statement,Conditional Operator,如果我必须得出这样的结果: 0001 0002 . . . 0099 0100 . . 0184 for i in 1..184 a = i.to_s if a.length == 1 puts "000"+ a elsif a.length == 2 puts "00"+ a else puts "0"+ a end end 有没有比这更好、更有效的方法来代替这么多的条件检查?那么你想用零填充一个整数

如果我必须得出这样的结果:

0001
0002
.
.
.
0099
0100
.
.
0184

for i in 1..184
    a = i.to_s
    if a.length == 1
        puts "000"+ a
    elsif a.length == 2
        puts "00"+ a
    else
        puts "0"+ a
    end
end

有没有比这更好、更有效的方法来代替这么多的条件检查?

那么你想用零填充一个整数

184.times{ |n| puts "%04d" % (n + 1) }

所以你想用零填充一个整数

184.times{ |n| puts "%04d" % (n + 1) }

为了补充这个答案,你还可以使用一个范围,每个都像:(1..184)。每个{n |放置“%04d”%n}太棒了,我不知道你称之为零填充。lol按照你的逻辑你可以做的最后一件事:
for i in 1..184 a=i.to|s放置“0”*(4-a.size)+一个结尾,你也可以使用一个范围,每个都像:(1..184)。每个{n|放置“%04d”%n}太棒了,我不知道你叫零填充。最后一件事lol按照你的逻辑你可以做:
for i in 1..184 a=i.to|s放置“0”*(4-a.size)+a end