我想知道为什么当我尝试获取不同的输入时,它会忽略我的第二个输入。
#!/usr/bin/env ruby
#-----Class Definitions----
class Animal
attr_accessor :type, :weight
end
class Dog < Animal
attr_accessor :name
def speak
puts "Woof!"
end
end
#-------------------------------
puts
puts "Hello World!"
puts
new_dog = Dog.new
print "What is the dog's new name? "
name = gets
puts
print "Would you like #{name} to speak? (y or n) "
speak_or_no = gets
while speak_or_no == 'y'
puts
puts new_dog.speak
puts
puts "Would you like #{name} to speak again? (y or n) "
speak_or_no = gets
end
puts
puts "OK..."
gets
正如你所看到的,它完全忽略了我的 while 语句。
这是一个示例输出。
Hello World!
What is the dog's new name? bob
Would you like bob
to speak? (y or n) y
OK...
问题是您在用户的输入中收到换行符。当他们输入“y”时,您实际上得到的是“y\n”。您需要使用字符串上的“chomp”方法来截断换行符,以使其按您的预期工作。就像是:
speak_or_no = gets
speak_or_no.chomp!
while speak_or_no == "y"
#.....
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)