🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1165閲覧

Rubyでのやることをランダムに出力するプログラムです。if文の分岐とgetsメソッド(初心者)

nyako

総合スコア45

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2021/01/09 10:04

編集2021/01/09 10:13

下記コードをターミナルで実行します。helloと入力したらRubyのsampleメソッドでランダムに出力。それ以外の文字が入力された場合"正常に入力して下さい"とします。

rb

1 2array = ["風呂掃除"," 読書","英語宿題","筋トレ"] 3 4puts "これはルーレットです" 5puts "helloと入力して下さい" 6input = gets 7 if input == "hello" 8 array.sample(1) 9 else 10 puts "helloと入力して下さい" 11 end 12

こちらを実行して、helloとターミナル上で入力してもelseの方にいってしまいます。

⭕️

rb

1 2array = ["風呂掃除"," 読書","英語宿題","筋トレ"] 3 4puts "これはルーレットです" 5puts "5と入力して下さい" 6input = gets.to_i 7 if input == 5 8 array.sample(1) 9 else 10 puts "5と入力して下さい" 11 end 12

こうすると5を入力すれば正常にif文で分岐します。

Q. なぜでしょうか。手を貸していただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こちらの記事に回答が書いてあります
【Ruby】getsメソッドの入力値は改行付きの文字列である

ruby で gets 経由で文字列を入力すると、最後に改行文字がついてしまいますので、今回のような用途の場合、gets.chompと書いて、末尾の改行文字を削除する必要があります。

投稿2021/01/09 10:30

siruku6

総合スコア1382

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyako

2021/01/09 11:01

なるほど! ご丁寧なご回答ありがとうございます! ```rb array = ["風呂掃除"," 読書","英語宿題","筋トレ"] puts "これはルーレットです" puts "helloと入力して下さい" input = gets.chomp if input == "hello" array.sample(1) else puts "helloと入力して下さい" end ``` ですがこう書き換えても、helloと入力すると処理が終わってしまいます。。
otn

2021/01/09 17:11

> helloと入力すると処理が終わってしまいます。。 helloを入力すると、何も表示せずに終わるプログラムだからですね。
siruku6

2021/01/10 07:15 編集

何かを表示したい場合、変数をただ書くだけではなく、表示するためのメソッドに渡してあげる必要があります。 表示するためのメソッドが何なのかはきっとすぐに見つけられるはずなので、自分で調べてみましょう。 (chompは初心者だとつまずきやすいところだと思い解説しましたが、なるべく自分で調べられるようになってほしいです)
nyako

2021/01/11 15:18

> siruku6さん 本当に助かりました。凡ミスでした。答えに辿り着くまでの経緯等をお伝えいただき考えさせていただきありがとうございます!感謝です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問