ruby - 如何将 'gets' 输入放入数组?

标签 ruby arrays

Ruby 菜鸟在这里学习技巧。我目前正在浏览 this tutorial并且正在做这个练习:

Let's write a program which asks us to type in as many words as we want (one word per line, continuing until we just press Enter on an empty line), and which then repeats the words back to us in alphabetical order.

我暂时忽略字母顺序部分。

这是我的代码:

puts 'Hi, do you need something sorted?'
yn = gets.chomp
while yn != 'no'
  puts 'What else?'
  array = [gets]
  yn = gets.chomp
end
puts 'Here\'s what you told me: ' +array.to_s

我已经对此进行了几个小时的调整。为了防止我的笔记本电脑因沮丧行为而损坏,我正在休息一下。任何有更多经验并且可能更有耐心的人都可以指出我的错误吗?

最佳答案

请记住,每次您 gets是一种要求用户输入的方法。在你的台词上:

array = [gets]
yn = gets.chomp

您实际上要求输入两次。相反,将用户输入存储在某处(例如数组,见下文)并获取存储的值,而不是询问用户两次。

此外,array = [gets]用包含一个元素(用户输入)的数组替换现有数组。您永远不会在数组中建立用户输入。相反,在 while 循环之前初始化数组并使用 <<在循环中:

array = Array.new
...
while yn != "no"
  ...
  array << gets.chomp
  yn = array.last
  ...
end

关于ruby - 如何将 'gets' 输入放入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5235075/

相关文章:

ruby-on-rails - 将 Ruby-Lint 与 Rspec 集成

java - Java中如何获取两个n维数组的和?

打印字符串中单词首字母的C程序

Java 对象数组的数组

ruby - 为什么 serverspec 连接到本地主机而不是远程主机

ruby - Ubuntu 在启动时启动 Rails

ruby-on-rails - ruby rails binding.pry怎么走

ruby-on-rails - ZenTest 中出现无效的 gemspec 错误。无效要求

c - 在 C 中更新字符串

arrays - 戈朗 : array is empty after call a method that adds items to the array