我正在尝试编写一个程序,不断地将用户输入添加到数组中,直到他们在空行上按回车键。然后,它按字母顺序对数组进行排序,并将排序后的数组显示给您。它不会让我跳出这个圈子。这是我的代码:
wordList = []
puts "enter as many words as you like"
entry = gets.chomp
while true
wordList.push entry
if entry == ''
break
end
end
sortedWordList = wordList.sort
puts sortedWordList
发布于 2020-09-16 10:00:12
你可以这样做:
wordList = []
puts "Enter as many words as you like:\n"
while (entry = gets.chomp)
break if entry.empty?
wordList.push entry
end
puts wordList.sort
发布于 2020-09-16 09:56:13
wordList = []
puts "enter as many words as you like"
while true
entry = gets.chomp
wordList << entry
if entry.blank?
break
end
end
sortedWordList = wordList.sort
puts wordList.inspect
puts sortedWordList
您将得到如下所示的输出
$ ruby test.rb
enter as many words as you like
d
f
g
h
y
a
b
c
j
k
["d", "f", "g", "h", "y", "a", "b", "c", "j", "k", ""]
a
b
c
d
f
g
h
j
k
y
发布于 2020-09-16 17:19:14
如果将entry = gets.chomp
移到while true
下面,您的代码就可以正常工作。它现在所做的是将第一个条目无限地添加到wordList中。
这是一种在保持可读性的同时缩短它的方法:
words = []
puts "enter as many words as you like"
until (entry = gets.chomp) == ""
words << entry
end
https://stackoverflow.com/questions/63917417
复制