Ruby 输入与条件不匹配

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) +

当输入为以下内容时,我试图摆脱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) + (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