陷入第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
答案 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 }