使用 `while` 倒计时
Countdown using `while`
我想为数字倒计时编写代码,并想使用 while
与 "HAPPY NEW YEAR!"
一起庆祝。
def countdown(number)
while number > 0
puts "#{number} SECOND(S)!"
number -= 1
end
puts "HAPPY NEW YEAR!"
end
我的代码不起作用。这段代码有什么问题?
UPD 失败测试如下(从@mudasobwa 的评论移至此处):
describe '#countdown' do
let(:countdown_output) {
"10 SECOND(S)!\n9 SECOND(S)!\n8 SECOND(S)!\n7 SECOND(S)!\n6 SECOND(S)!\n5 SECOND(S)!\n4 SECOND(S)!\n3 SECOND(S)!\n2 SECOND(S)!\n1 SECOND(S)!\n"
}
it "outputs '<n> SECOND(S)!' string to STDOUT for each count" do
expect { countdown(10) }.to output(countdown_output).to_stdout
end
it 'returns HAPPY NEW YEAR!' do
expect(countdown(12)).to eq "HAPPY NEW YEAR!"
end
end
问题出在这里:
expect(countdown(12)).to eq "HAPPY NEW YEAR!"
您的功能是打印 HNY 输出到标准输出,而不是return打印。
要解决此问题,countdown
方法应将 return 值改为:
def countdown(number)
while number > 0
puts "#{number} SECOND(S)!"
number -= 1
end
# puts "HAPPY NEW YEAR!"
"HAPPY NEW YEAR!"
end
我想为数字倒计时编写代码,并想使用 while
与 "HAPPY NEW YEAR!"
一起庆祝。
def countdown(number)
while number > 0
puts "#{number} SECOND(S)!"
number -= 1
end
puts "HAPPY NEW YEAR!"
end
我的代码不起作用。这段代码有什么问题?
UPD 失败测试如下(从@mudasobwa 的评论移至此处):
describe '#countdown' do
let(:countdown_output) {
"10 SECOND(S)!\n9 SECOND(S)!\n8 SECOND(S)!\n7 SECOND(S)!\n6 SECOND(S)!\n5 SECOND(S)!\n4 SECOND(S)!\n3 SECOND(S)!\n2 SECOND(S)!\n1 SECOND(S)!\n"
}
it "outputs '<n> SECOND(S)!' string to STDOUT for each count" do
expect { countdown(10) }.to output(countdown_output).to_stdout
end
it 'returns HAPPY NEW YEAR!' do
expect(countdown(12)).to eq "HAPPY NEW YEAR!"
end
end
问题出在这里:
expect(countdown(12)).to eq "HAPPY NEW YEAR!"
您的功能是打印 HNY 输出到标准输出,而不是return打印。
要解决此问题,countdown
方法应将 return 值改为:
def countdown(number)
while number > 0
puts "#{number} SECOND(S)!"
number -= 1
end
# puts "HAPPY NEW YEAR!"
"HAPPY NEW YEAR!"
end