Ruby 使用'while'倒计时`
我想为数字倒计时编写代码,并想用Ruby 使用'while'倒计时`,ruby,loops,while-loop,countdown,Ruby,Loops,While Loop,Countdown,我想为数字倒计时编写代码,并想用while庆祝新年快乐! def countdown(number) while number > 0 puts "#{number} SECOND(S)!" number -= 1 end puts "HAPPY NEW YEAR!" end 我的代码不起作用。这个代码怎么了 UPD测试失败如下(从@mudasobwa的评论中移到这里): 描述“#倒计时”做什么 let(:倒计时_输出){ “10秒!\n9秒!\n8秒!\n7
while
庆祝新年快乐!
def countdown(number)
while number > 0
puts "#{number} SECOND(S)!"
number -= 1
end
puts "HAPPY NEW YEAR!"
end
我的代码不起作用。这个代码怎么了
UPD测试失败如下(从@mudasobwa的评论中移到这里):
描述“#倒计时”做什么
let(:倒计时_输出){
“10秒!\n9秒!\n8秒!\n7秒!\n6秒!\n5秒!\n4秒!\n3秒!\n2秒!\n1秒!\n”
}
它为每个计数“输出”秒!“字符串到标准输出”
期望{countdown(10)}.to输出(countdown\u输出)。to\u stdout
结束
“新年快乐!”做
期待(倒计时(12))。情商“新年快乐!”
结束
结束
问题在于:
expect(countdown(12)).to eq "HAPPY NEW YEAR!"
您的函数是将HNY打印到stdout,而不是返回它
要解决此问题,倒计时
方法应返回以下值:
def countdown(number)
while number > 0
puts "#{number} SECOND(S)!"
number -= 1
end
# puts "HAPPY NEW YEAR!"
"HAPPY NEW YEAR!"
end
使用范围而不是变量是否更好?如何使用代码?抱歉,应该澄清一下…它在IRB中正确执行,但不会通过为其编写的rspec。它一直在提出例外情况。我的电话号码是10。@JustANoobie,rspec告诉你什么?@Dan Phillips描述“#倒计时”让(:倒计时输出){“10秒”!\n9秒”!\n8秒”!\n7秒!\n6秒!\n5秒!\n4秒!\n3秒!\n2秒!\n1秒!\n”}它输出“秒”!'string to STDOUT for each count'do expect{countdown(10)}。to output(countdown\u output)。to STDOUT end'返回新年快乐请期待(倒计时(12))。结束“新年快乐!”
def countdown(number)
while number > 0
puts "#{number} SECOND(S)!"
number -= 1
end
# puts "HAPPY NEW YEAR!"
"HAPPY NEW YEAR!"
end