Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何围绕我的“循环”编写循环;如果;测验?_Ruby - Fatal编程技术网

Ruby 如何围绕我的“循环”编写循环;如果;测验?

Ruby 如何围绕我的“循环”编写循环;如果;测验?,ruby,Ruby,我是Ruby新手,正在尝试为我5岁的儿子制作一个程序。我想问他如何在拼写列表中拼写一个单词(面对面,而不是在屏幕上),然后他将其输入Ruby,如果答案正确,则输入“干得好!”并重新运行。如果不正确,则会显示“重试!”并重新运行 以下是我对一个词的看法: puts 'How do you spell?..' spell = gets.chomp if spell =='disappointed' puts 'Well Done!' elsif spell != 'disappointed' p

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

以下是我对一个词的看法:

puts 'How do you spell?..'
spell = gets.chomp
if spell =='disappointed' 
puts 'Well Done!'
elsif spell != 'disappointed'
 puts 'try again!'
end
我的问题是:

  • 如何让它重新运行?不管是对是错,我需要建立一个循环吗?如果是这样的话,最简单的方法是什么,让它回到起点,这样他就可以回答而不必重新运行。显然,不把
    end
    作为一个开始,但我收到一条消息“意外$end,期待kEND”
  • 如果我想补充更多的话,最好的方法是什么

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

  • 您应该看看ruby中的while循环。

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

    words = %w{disappointed knowledge}
    
    如果你有很多单词,你也可以把单词放在不同的行上

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

    if words.include? spell
        # ...
    else
        # ...
    end
    
    请注意,我使用了
    else
    而不是
    elsif
    -
    else
    覆盖了所有可能的其他条件,这正是您想要的
    elsif
    也有效,但为什么在不必要时重复一个条件

    对于多次执行,请使用
    循环

    loop do
        # ...
    end
    

    谢谢赫里希,我对循环有点了解,所以我猜我把循环放在了我写的“程序”之前和之后?是的。基本上是
    code
    ,而真正的结束
    code
    谢谢,太好了!你能告诉我为什么这不起作用吗?words=%w{失望知识}循环放置“如何拼写…”words=get.chomp if words.include?拼写“干得好!”否则就说“再试一次!”end@Jason:对于
    if
    ,您有一个
    end
    ,但是对于
    循环
    没有
    end