我的一个小程序遇到了问题。它应该问你的话,直到你什么都不说,然后从这些单词中打印出按字母顺序排列的数组。相反,我输入的单词后面没有打印出来这是代码:
puts "which words would you like to sort?"
def sort
sw=[]
word=gets.chomp.to_s
sw2=sw.push "#{word}"
if word == ""
puts sw2.sort
else
sort
end
end
sort
答案 0 :(得分:1)
让我们分解原始代码:
def sort
sw=[ ]
word=gets.chomp.to_s
sw2=sw.push "#{word}"
if word == " "
puts sw2.sort
else
sort
end
end
sort
很好,可以看到使用closure的新代码。然而,一些陷阱:
sw2
?sort
内调用sort
方法。==
运算符将word
与字符串" "
进行比较, 不 为空答案。< / LI>
现在,让我们回顾一下你对问题的回答:
def sort
sw = [ ]
word = gets.chomp.to_s
sw << word
until word == ""
puts sw
word = gets.chomp!.to_s
sw << word
sw.sort!
end
end
sort
until
循环的使用,它适用于您的目的,并在here word
sw
!
用于枚举.chomp
和.sort!
我希望这有助于并欢迎Ruby!