Chris Pine学习编程Ruby Ch 8:按字母顺序排列你的数组

时间:2011-12-21 04:02:29

标签: ruby sorting

陷入第8章:

输入任意数量的单词 每行一个单词,一直持续到我们只需在空行上按Enter键 按字母顺序将字重复给我们。 使用'sort'

所以,这就是我所要做的,但是我遇到了一些有趣的问题,因为没有第一个单词进入数组[等等]

# alphabetting

puts 'Tell us some of your favorite things!'

# create an array
words = []

while gets.chomp != ''
  words.push gets.chomp
  words.sort
    puts words 
end

这是否现在有效......但我必须在那里拥有“东西”吗?似乎顽皮地在'while'循环中分配。

puts 'Tell us some of your favorite things!'

words = []
puts words

while (thing = gets.chomp) != ''
  words.push thing
end

puts words.sort 

2 个答案:

答案 0 :(得分:0)

您的第一个gets来电未被任何内容引用,并被撤销。它不仅仅是第一个词,而是其他每一个词都会被抛弃。输出例程也应该在循环之外。修复是:

words = []
while word = gets.chomp and not word.empty?
  words.push(word)
end
puts words.sort

答案 1 :(得分:0)

试试这个:

puts 'Tell us some of your favorite things!'

words = []
while line = STDIN.gets
  line = line.chomp
  break if line.empty?
  words << line.chomp
end

words = words.sort

words.each {|word| puts word }