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