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

プレグンタを「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 に答える
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 に答える