Rubyでユーザー入力をマスターする5ステップ – Japanシーモア

Rubyでユーザー入力をマスターする5ステップ

Rubyプログラミングでユーザーからの入力を受け取るイメージRuby
この記事は約5分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Rubyというプログラミング言語に触れてみたいと思ったことはありませんか?

特に、ユーザーからの入力を受け取る方法を学ぶことで、よりダイナミックなプログラムを作ることができます。

この記事を読めば、Rubyでユーザー入力をマスターすることができるようになります。

●Rubyでのユーザー入力の基本

Rubyには、ユーザーからの入力を受け取るための仕組みがあります。

その核心にあるのが、標準入力とgetsメソッドです。

○標準入力とは?

標準入力とは、コンピュータのシステムがユーザーからの入力を受け取る方法の一つです。

多くの場合、キーボードからの入力を意味します。

Rubyプログラムでは、この標準入力を利用してユーザーからの入力を受け取ることができます。

○getsメソッドの使用

Rubyで標準入力からユーザーの入力を受け取るためには、getsメソッドを使用します。

このメソッドは、ユーザーからの入力があるまでプログラムの実行を一時停止し、入力が完了したらその値を文字列として返します。

●具体的なサンプルコード

それでは、実際にどのようにgetsメソッドを使用するか、具体的なサンプルコードを見てみましょう。

○サンプルコード1:基本的なgetsの使用法

下記のコードは、getsメソッドを使ってユーザーからの入力を受け取り、その入力をそのまま出力する簡単なプログラムです。

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

このコードでは、まず”あなたの名前を入力してください”と出力し、次にgetsメソッドで名前を入力してもらいます。

最後に、”こんにちは、〇〇さん”と入力した名前を出力します。

○サンプルコード2:数値の入力を受け取る

次に、ユーザーから数値の入力を受け取る方法を見てみましょう。

getsメソッドはデフォルトで文字列を返すため、to_iメソッドを使用して整数に変換します。

puts "あなたの年齢を入力してください"
age = gets.to_i


puts "あなたは#{age}歳です"

このコードでは、まず”あなたの年齢を入力してください”と出力し、次にgetsメソッドで年齢を入力してもらいます。

この時点で受け取った入力は文字列ですので、to_iメソッドで整数に変換します。

最後に、”あなたは〇〇歳です”と入力した年齢を出力します。

○サンプルコード3:配列を使用した入力

ユーザーからの複数の入力を一度に処理したい場合は、配列と組み合わせると便利です。

下記のコードでは、複数の商品名をユーザーから入力し、それを配列に格納します。

puts "購入したい商品名を3つ入力してください(スペースで区切ってください)"
items = gets.split
puts "あなたが購入したい商品は#{items.join('、')}ですね。"

このコードでは、まず”購入したい商品名を3つ入力してください(スペースで区切ってください)”と出力し、次にgetsメソッドで商品名を入力してもらいます。

この時点で受け取った入力は一つの文字列ですが、splitメソッドを用いてスペースで区切られた各商品名を配列に変換します。

最後に、”あなたが購入したい商品は〇〇、〇〇、〇〇ですね。”と入力した商品名を出力します。

●Rubyでのユーザー入力の応用例

Rubyの基本的なユーザー入力の受け取り方を学んだところで、これをどのように応用するか見てみましょう。

ここでは、条件分岐とループを組み合わせたユーザー入力の処理方法を学びます。

○サンプルコード4:条件分岐と組み合わせた入力の処理

ユーザーからの入力に応じて処理を変えたい場合、条件分岐と組み合わせると有効です。

下記のコードでは、ユーザーから入力された数値が偶数か奇数かを判断します。

puts "数値を入力してください"
number = gets.to_i
if number % 2 == 0
  puts "#{number}は偶数です"
else
  puts "#{number}は奇数です"
end

このコードでは、まず”数値を入力してください”と出力し、次にgetsメソッドで数値を入力してもらいます。

この時点で受け取った入力は文字列ですので、to_iメソッドで整数に変換します。

そして、if文で入力された数値が偶数か奇数かを判断します。

偶数の場合は”〇〇は偶数です”を、奇数の場合は”〇〇は奇数です”を出力します。

○サンプルコード5:ループと組み合わせた入力の処理

ループを使って連続的なユーザー入力を取得する方法もあります。

下記のコードでは、ユーザーから5回連続で数値の入力を受け取り、それを配列に格納します。

numbers = []
5.times do
  puts "数値を入力してください"
  number = gets.to_i
  numbers << number
end
puts "入力された数値は#{numbers.join('、')}です"

このコードでは、まず空の配列を作成します。

その後、5回の入力を求めるループを作成します。

ループの中で”数値を入力してください”と出力し、ユーザーからの入力を受け取り、それを整数に変換します。

そして、その数値を配列に追加します。

最後に、”入力された数値は〇〇、〇〇、〇〇、〇〇、〇〇です”と出力します。

●ユーザー入力に対する注意点

ユーザーからの入力を受け取る際は、セキュリティ上の注意も必要です。

不正な入力があった場合のエラーハンドリングや、予期しない入力に対する対策を常に考える必要があります。

例えば、文字列を期待している箇所に数値が入力された場合や、逆に数値を期待している箇所に文字列が入力された場合などです。

また、入力が長すぎる場合や、特殊な文字が含まれている場合も対策が必要です。

具体的な対策方法としては、入力のバリデーションやエラーハンドリングがあります。

まとめ

以上、Rubyでのユーザー入力をマスターする5ステップを見てきました。

これらを理解し、活用することでRubyプログラミングの幅が一気に広がります。

また、ユーザーからの入力を取り扱う際の注意点も確認しました。

これらの知識を活かして、さまざまなRubyのプログラムを作成してみてください。