0

我是 Ruby 新手,正在尝试为我 5 岁的儿子编写一个程序。我想问他如何拼写他的拼写列表中的一个单词(当面,而不是在屏幕上),然后他将其输入 Ruby,如果答案正确,那么它会显示“干得好!” 并重新运行。如果它不正确,那么它会显示“再试一次!” 并重新运行。

这是我想出的一个词:

puts 'How do you spell?..'
spell = gets.chomp
if spell =='disappointed' 
puts 'Well Done!'
elsif spell != 'disappointed'
 puts 'try again!'
end

我的问题是:

  1. 如何让它重新运行?不管是对是错,我需要设置一个循环吗?如果是这样,让它回到开始的最简单方法是什么,这样他就可以在不重新运行的情况下回答。显然,不推杆end将是一个开始,但我收到一条消息“意外的 $end,期待 kEND”。
  2. 如果我想添加更多的话,最好的方法是什么?

    if spell =='disappointed' || 'knowledge'  (etc)
    puts 'Well Done!'  
    elsif spell != 'disappointed'|| 'knowledge'   (etc)
      puts 'try again!'
    end
    
4

2 回答 2

2

为了便于更新,我建议将正确的单词放在一个数组中:

words = %w{disappointed knowledge}

如果您有很多单词,您也可以将单词放在单独的行中。

然后,您可以检查输入的单词是否在列表中:

if words.include? spell
    # ...
else
    # ...
end

请注意,我使用else了而不是elsifelse涵盖了所有可能的其他条件,这就是您想要的。elsif也可以,但是为什么在不需要的时候重复一个条件呢?

至于多次执行,请使用loop

loop do
    # ...
end
于 2013-08-04T07:20:55.997 回答
0

你应该看看 ruby​​ 中的 while 循环。 http://www.ruby-doc.org/docs/Tutorial/part_02/while.html

于 2013-08-04T07:17:40.537 回答