0

単純な問題ですが、Ruby 言語の知識がなく、解決方法がわかりません。

クラスゲーム
  デフ初期化
    get_command
  終わり
  def get_command
    コマンド = 取得
    puts command # => POSITION
    puts command != "POSITION" # => true
    if コマンド != "位置"
      コマンド = get_command
    そうしないと  
      真を返す
    終わり
  終わり
終わり

a = Game.new

アプリケーションを実行して入力するたびに、POSITION常にtrue比較を取得し"POSITION"ます誰でも理由を説明できますか?

ありがとう

4

1 に答える 1

2

実際に取得しているのは「POSITION\n」だからです。これは irb で確認できます。

1.9.3p194 :061 > command = gets
POSITION
 => "POSITION\n"

比較を行う前に、コマンドを削除する必要があります。

command = gets.strip

また

command = gets.chomp

これにより、入力から空白 (改行を含む) が削除されます。

于 2012-09-28T01:54:43.393 に答える