我希望打印出每个数字,而不仅仅是一个大数值。这是我的代码:
i = 20
loop {
i -= 1
print i
break if i <= 0
}
# >> 191817161514131211109876543210
我尝试过:
i
do
和end
切换括号i
的值答案 0 :(得分:2)
puts
在传递每个参数之后添加新行(除非已经有换行符结束arg)。
print
未添加新行。
因此,您需要切换到puts
:
i = 20
loop {
i -= 1
puts i
break if i <= 0
}
这大致等同于使用以下代码:
i = 20
loop {
i -= 1
print "i\n"
break if i <= 0
}
\n
是换行符:
\ n此时在文本中插入换行符。
下面是将多个args传递到puts
语句的示例,以真正简化您的代码:
puts *(0..20)
或者,按照相反的顺序使用:
puts *19.downto(0)
这使用splat
运算符将范围作为参数发送到puts
,为您提供所需的输出,
希望这会有所帮助-如果您有任何疑问,请告诉我。
答案 1 :(得分:1)
您正在使用打印,它将打印行到控制台,但末尾没有\ n。
将print
更改为puts
。
答案 2 :(得分:0)
当您已经有了解决方案时,您需要将print
替换为puts
。我正在向您展示获得相同输出的替代解决方案:
puts (0..20).to_a.reverse
OR
(0..20).to_a.reverse.each{|i| puts i}
输出:
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0