Ruby 输入与条件不匹配
当输入为以下内容时,我试图摆脱while循环: 再见Ruby 输入与条件不匹配,ruby,Ruby,当输入为以下内容时,我试图摆脱while循环: 再见 再见 再见 而不是这个: 再见,再见 代码是: my_reply = ((word1 = gets) + (word2 = gets) + (word3 = gets)) while my_reply != ((word1 == 'BYE') and (word2 == 'BYE') and (word3 == 'BYE')) puts 'Grandma: ...' my_reply = ((word1 = gets) +
再见
再见 而不是这个: 再见,再见 代码是:
my_reply = ((word1 = gets) + (word2 = gets) + (word3 = gets))
while my_reply != ((word1 == 'BYE') and (word2 == 'BYE') and (word3 == 'BYE'))
puts 'Grandma: ...'
my_reply = ((word1 = gets) + (word2 = gets) + (word3 = gets))
end
puts 'Grandma: ' + 'Fine, sonny, don\'t hang out with your aging grandmother!'.upcase
这是行不通的。我需要帮助。来自的输入包含一个换行符(再见\n)。做得到.chomp来摆脱它。我不太确定,但可能是你在尝试做以下事情:
bye_3 = Array.new(3, "BYE")
until Array.new(3){gets.chomp} == bye_3
puts "Grandma: ..."
end
puts 'Grandma: ' + 'Fine, sonny, don\'t hang out with your aging grandmother!'.upcase
Array.new(3,“BYE”)
与[“BYE”,“BYE”,“BYE”]
和Array.new(3){gets.chomp}
与[gets.chomp,gets.chomp,gets.chomp]
gets
还返回换行和回车“\r\n”,例如“BYE\r\n”。这意味着您必须在与其他字符串进行比较之前将它们去掉。(见附件)
提供了有关如何调试脚本的详细信息。
while [gets, gets, gets].map(&:strip) != ['BYE', 'BYE', 'BYE']
puts 'Grandma: ...'
end
puts 'Grandma: ' + 'Fine, sonny, don\'t hang out with your aging grandmother!'.upcase