【发布时间】:2015-09-04 21:39:10
【问题描述】:
在 Ruby 中,我希望创建一个短程序,用户可以在其中输入一定数量的单词(目前为 5 个),并且程序需要按字母顺序将单词吐回给用户,并且每个单词必须从全部大写字母交替到全部小写字母。
此程序只能使用(.each do、.sort、.upcase、.downcase)、数组、循环和 if/else 语句等方法。 NOTHING ELSE ...所以没有索引、字典、模块、参数等。语法不应该与我已经写的有太多不同。
这是我到目前为止的代码...我不断收到无方法错误...任何帮助将不胜感激。
words = []
5.times do
puts "Please enter a word"
words << gets.chomp
end
words.sort.each do |odd, even|
if odd puts words.upcase
elsif even puts words.downcase
end
end
【问题讨论】:
-
你所说的“类似方法”是什么意思?每当引发异常时,重要的是要确定它发生的行。
-
words.sort会给你和排序的单词数组。each然后将排序数组的每个元素传递给块,将它们分配给第一个块变量odd。由于每次都传递一个字符串,因此块变量even将始终等于nil。这就是为什么该块没有按您希望的那样执行。您可能会发现在块的开头添加以下内容会有所帮助:puts "odd=#{odd}, even=#{even}"。