Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用'while'倒计时`_Ruby_Loops_While Loop_Countdown - Fatal编程技术网

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