好的,我具有金鱼的编程能力,因此可以使用一些帮助。我有以下代码(请原谅我可怕的幽默感):
puts 'Do you have a middle name?'
answer=gets.chomp.downcase
while true
if answer != ('yes' || 'no')
puts 'Yes or no answers only, dumbass.'
puts 'So I\'ll ask again. Do you have a middle name?'
answer=gets.chomp.downcase
elsif answer == ('yes' || 'no')
if answer == 'yes'
puts 'Cool. What is it?'
middlename=gets.chomp
puts middlename +'? That\'s dumb.'
break
if answer == 'no'
puts 'I guess you aren\'t cool enough.'
break
end
end
end
end
puts 'Well, smell ya later.'
它通常可以正常工作,但是我有一个问题:选择no选项。我不知道如何使它工作。它将正常循环,并选择yes选项有效。
基本上,我的问题是:如何创建带有两个break选项的循环?
对于这样的事情,您应该使用a case/when
,它是一个Rubyswitch
语句,因为拥有所有这些if/end
块会很快造成混乱。
另外,请阅读此指南: https : //github.com/bbatsov/ruby-style-guide它将教您如何正确格式化红宝石代码。
puts 'Do you have a middle name?'
answer=gets.chomp.downcase
case answer
when 'yes'
puts 'Cool. What is it?'
middlename=gets.chomp
puts middlename +'? That\'s dumb.'
when 'no'
puts 'I guess you aren\'t cool enough.'
else
puts 'Yes or no answers only, dumbass.'
puts 'So I\'ll ask again. Do you have a middle name?'
answer=gets.chomp.downcase
end
puts 'Well, smell ya later.'
如果你一直希望loop
他们不在yes
或不回答的话no
。您可以通过将代码块包装为a来做到这一点,loop
如下所示:
puts 'Do you have a middle name?'
answer=gets.chomp.downcase
loop do
case answer
when 'yes'
puts 'Cool. What is it?'
middlename=gets.chomp
puts middlename +'? That\'s dumb.'
break
when 'no'
puts 'I guess you aren\'t cool enough.'
break
else
puts 'Yes or no answers only, dumbass.'
puts 'So I\'ll ask again. Do you have a middle name?'
answer=gets.chomp.downcase
end
end
puts 'Well, smell ya later.'
看到这个答案:如何在Ruby中编写switch语句
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句