4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rubyのgetsメソッドにおけるgets.chompの意味と使い方

Posted at

Rubyのgetsメソッドとは

Rubyでプログラムがユーザーからの入力を受け取る際に、getsメソッドがよく使われます。getsメソッドは、ユーザーが入力した文字列をそのまま取得し、改行文字も含めて返します。

例:

puts "お名前を入力してください: "
name = gets
puts "こんにちは、#{name}さん"

この例では、getsメソッドを使ってユーザーからの入力をname変数に代入しています。ただし、このままでは改行文字も含まれているため、出力結果が次のようになります。

お名前を入力してください: 
太郎
こんにちは、太郎
さん

これを防ぐために、gets.chompを使います。

gets.chompの意味と使い方

chompメソッドは、文字列の末尾にある改行文字を取り除くことができます。gets.chompを使うことで、getsで取得した文字列から改行文字を除去できます。
例:

puts "お名前を入力してください: "
name = gets.chomp
puts "こんにちは、#{name}さん"

この例では、gets.chompを使って改行文字を取り除いてからname変数に代入しています。これにより、出力結果が次のようになります。

お名前を入力してください: 
太郎
こんにちは、太郎さん

if文でgetsを使った例

getsメソッドをif文で使用する場合、改行文字が含まれているため、うまく条件分岐ができません。以下に、getsを使った場合の例を示します。

puts "パスワードを入力してください: "
password = gets
if password == "p@ssw0rd"
  puts "ログインに成功しました"
else
  puts "パスワードが違います"
end

この例では、ユーザーが正しいパスワードp@ssw0rdを入力しても、改行文字が含まれているため、条件分岐が正しく機能しません。

パスワードを入力してください: 
p@ssw0rd
パスワードが違います

if文でgets.chompを使った例

gets.chompを使用することで、改行文字を取り除いた文字列を取得し、正しく条件分岐を行うことができます。

puts "パスワードを入力してください: "
password = gets.chomp
if p@ssw0rd == "p@ssw0rd"
puts "ログインに成功しました"
else
puts "パスワードが違います"
end

この例では、gets.chompを使用して改行文字を取り除いてからpassword変数に代入しています。これにより、条件分岐が正しく機能します。

パスワードを入力してください: 
p@ssw0rd
ログインに成功しました

まとめ

Rubyのgetsメソッドは、ユーザーからの入力を受け取る際に使用されますが、そのままでは改行文字も含まれてしまいます。gets.chompを使うことで、改行文字を取り除いた文字列を取得できます。このように、gets.chompは、ユーザー入力を扱う際に便利なメソッドです。特に、if文などの条件分岐で正しく動作させるためには、gets.chompの使用が重要です。

4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?