好吧,我有金鱼的编程能力,所以我需要一些帮助。我有以下代码(请原谅我的幽默感):
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.'
它基本上工作正常,但我有一个问题:选择不选。我不知道怎样才能让它工作。它会很好地循环,选择yes选项也行。
基本上,我的问题是:如何创建一个有两个中断选项的循环?
最佳答案
对于这种情况,应该使用rubycase/when
语句switch
,因为拥有所有这些if/end
块会很快让人困惑。
另外,请阅读本指南:https://github.com/bbatsov/ruby-style-guide
它将教你如何正确格式化你的ruby代码。
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
中,可以执行以下操作: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.'
看到这个答案:How to write a switch statement in Ruby
关于ruby - ruby 麻烦与循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21195789/