gets による入力
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 29/88。
これまでに、出力を表示する方法を学びました。次は、ユーザーから入力を受け取る方法を学びましょう。getsメソッドは、ユーザーが入力したテキストを1行読み取ります。
name = gets
puts "Hello, #{name}"Ruby が gets に遭遇すると、ユーザーが何かを入力して Enter キーを押すまで待ちます。入力された内容は変数に格納されます。ユーザーが「Alice」と入力した場合、出力は次のようになります。
Hello, Aliceここで注意すべき重要な点があります。ユーザーが Enter を押すと、その改行文字が入力に含まれます。
上記の出力には表示されません。これは、文字列がすでに改行で終わっていない場合にのみ、puts が改行を追加するためです。変数には実際には "Alice\n" が含まれており、ここで \n は改行を表します。
これをはっきりと確認するには、pを使えます。
name = gets
p nameユーザーが「Ruby」と入力すると、出力は次のようになります。
"Ruby\n"この末尾の改行によって、プログラムで予期しない動作が起こることがあります。次のレッスンでは、その削除方法を学びます。
チャレンジ
簡単getsを使ってユーザーから名前を読み取り、nameという変数に格納します。
次に、pを使ってname変数を出力します。これにより、末尾の改行文字を含む生の文字列が表示されます。
たとえば、入力がRubyの場合、引用符と\n文字が見える状態で文字列が表示されます。
自分で試してみよう
# TODO: gets を使ってユーザーから名前を読み取り、name という変数に格納する
# TODO: p を使って変数 name を出力するこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ