Closed konoken closed 5 years ago
これは標準入力の末尾に改行コードが入っているためだと思います:bow:
gets.chomp
として上げると改行コードを取り除けるのでうまく動作するかなと思います:bow:
標準入力は基本的にchompしておいたほうが安全ですね:smile:
answer = gets.chomp
追加したところ、上手くいきました! 改行コードとは、つまり/nがあったために正しい判定ができなかったということでしょうか?
そうですね。正しくはスラッシュ/
ではなくバックスラッシュ\
n
です
試しに自分で改行コードを入れてprint
メソッドで出力すると挙動の違いが確認できます。
[1] pry(main)> hoge = "hoge\n"
=> "hoge\n"
[2] pry(main)> print hoge
hoge
=> nil
# 改行されている
[3] pry(main)> fuga = "fuga"
=> "fuga"
[4] pry(main)> print fuga
fuga=> nil
# 改行されていない
確認取れました。 ありがとうございます。
概要
タイトルについて、応用したコードを作成
実現したいこと
コンソール上で’はい’を選択しない限り、無限ループとなる。
困っていること
’はい’もしくは’いいえ’を記入しても、それ以降のputs内容が表示されず、なぜか上のputs内容が繰り返される。
困っていることがバグの場合は事象やログ、エラーメッセージをできるだけそのまま(抜粋などしない)下記に記載してください。
途中でctr+cで抜け出しました。
解決するために行ったこと
5行目:answerで入力した内容が下のif文に入り、それ以降の処理が走ると思ったが、うまくいかない。
問題となっている箇所の予想
問題となっているアプリケーションのGitHub URL
https://github.com/kenkono/pro-ruby/blob/master/rola.rb