1

Ruby のすばらしいところをすべて聞いたので、今日 Ruby を試してみることにしましたが、これまでのところ苦労しているだけです。昔、データを配列に格納して検索キーワードが入っているかどうかを調べるだけのPythonを学びながら「検索エンジン」を作って、Rubyでも同じことをやってみました。

Python ほど直感的ではありませんでしたが、検索機能が動作するようになりました。ただし、ユーザー入力の操作に問題があります。入力がinsertsearch、およびquitに等しいかどうかを確認したいのですが、うまくいきません。gets の使い方がよくわからないので、問題は gets に関連していると思います。

while true
  puts 'What do you want to do?'
  choice = $stdin.gets

  puts choice # => quit

  if choice == 'quit'
    break
  end
end

ifステートメントが機能しません。私は一体何を間違っているのですか?これは、神のためにC++ では些細なことです!

助けていただければ幸いです。Ruby は私にとってとてもなじみのないものです... ありがとう!

4

2 に答える 2

6

getには、入力の最後に改行が含まれていると思います。gets.chomp代わりに使用してみてください

irb(main):001:0> input = $stdin.gets
hello
=> "hello\n"
irb(main):002:0> input = $stdin.gets.chomp
hello
=> "hello"
于 2012-08-09T18:21:56.457 に答える
1

davidracは正しいです、あなたは切り落とす必要があります\n

ここから答えを引用する

問題は、ユーザーからの入力で改行文字を取得していることです。彼らが「y」を入力している間、あなたは実際に「y\n」を取得しています。意図したとおりに機能させるには、文字列で「chomp」メソッドを使用して改行を切り落とす必要があります

于 2012-08-09T18:25:33.180 に答える