1
def pregunta 
    reply = gets.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

pregunta 'alfkjdasñlfj?'

在我提出问题(“pregunta”是英文问题)后,当我输入答案(“si”或“no”时,程序应该告诉我我是对的(“correcto”)还是错误的(“incorrecto”) )。我没有得到答案,而是得到一个“ArgumentError”。我究竟做错了什么?

我正在使用 Ruby 1.9.3-p194

4

4 回答 4

2

pregunta 不带参数,但无论如何你都会传递一个参数。我可能是错的,但不是你试图做这样的事情:

def pregunta(preg)
    puts preg
    reply = gets.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end
于 2012-09-01T00:26:18.490 回答
1

您没有将值传递给函数调用,而是从终端读取它。调用该函数,然后输入您的字符串。

pregunta
si
Correcto
=> nil
于 2012-09-01T00:22:39.063 回答
1

您的方法声明中没有任何参数。

你需要这样的东西:

def pregunta(foo)
   if foo == 'bar'
      true
   end
end
于 2012-09-01T00:23:25.957 回答
1

你叫 pregunta 'alfkjdasñlfj'?但该方法没有参数。

def pregunta(answer) 
    reply = answer.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

pregunta gets

也许 ?

于 2012-09-01T00:24:22.813 回答