【Ruby】コマンドへキーボードから入力

ABOUTこの記事をかいた人

気になること&知らないことをひたすらググることを得意としています。このブログでは最近気になったことを中心に記事を書いていきます。記事には間違った情報を書かないように細心の注意を払っていますが、もし誤りがあった場合はコメントやお問い合わせフォームからご指摘いただければ幸いです。

コマンドにデータを入力するには下記の記述などで対応ができます。

  • 配列ARGV
  • getsメソッド

ARGVでコマンドラインにデータを入力

コマンドラインからの情報はARGVで取り出すことができます。ARGVは配列オブジェクトとなっていて、複数データを要素として取り出すができます。例としてまず下のような、ファイルを作成します。今回は「nyuuryoku.rb」というファイルを作ってみました。

そのファイルをコマンドラインから実行してみます。書き方はファイルを指定し、半角スペースを入れその後に、渡したい情報を入力します。複数入力する場合はデータとデータの間に半角スペースを入れます。ここで入力した情報が、「ARGV」の配列の要素として渡されることになります。

C:\Users>nyuuryoku.rb 1 2 sann
最初の入力:1
2番目の入力:2
3番目の入力:sann
"1"
"sann"

文字列を数値に変える

「ARGV」の配列の要素は文字列となっているので「”1″」などを数値「1」にしたい場合は「to_i」メソッドを使います。

C:\Users>nyuuryoku.rb 1 2
1
2
3

このように「to_i」メソッドを使えば簡単に数値に変換することができ、数値の計算もできるようになります。

引数を渡さなかった場合

また、コマンドラインにデータを書かなかったは下のように表示されます。

C:\Users>nyuuryoku.rb
nil
0

getsメソッド

「gets」でコマンドにデータを入力する場合はまず、下のように記述したファイルを用意します。今回も先程と同じファイル名「nyuuryoku.rb」としました。

このファイルを実行するとまず、「”入力1″」がputsされ、処理が中断し、情報を入力するのを待ってくれます。

C:\Users>nyuuryoku.rb
入力1

今回は文字列「こんにちは」と入れてみます。

C:\Users>nyuuryoku.rb
入力1
こんにちは
C:\Users>nyuuryoku.rb
入力1
こんにちは
"こんにちは\n"

すると「”こんにちは\n”」としてデータの入力ができました。

改行を消すには?

「gets」はデフォルトで改行の特殊文字「\n」が入ってしまうのでこれを消すには「chomp」というメソッドを使います。

C:\Users>nyuuryoku.rb
入力2
こんにちは
"こんにちは"

数値を入力したいときは?

「gets」では文字列が入力されてしまいますので、数値を入力したい場合は先程のARGVと同様に「to_i」メソッドを使います。

今回は数値として「3」を入れてみます

C:\Users>nyuuryoku.rb
数値1
3

入力し、エンターを押すと数値「3」が入力できたことがわかります。

C:\Users>nyuuryoku.rb
数値1
3
3

入力した値を計算する場合

入力した値の計算を行いたい場合は下のように記述すればOKです。

C:\Users>nyuuryoku.rb
数値1
3
数値2
5
数値1+数値2=8

このスクリプトの流れとしては2、4行目にてgets.to_iで入力された数値をそれぞれの変数「num1」「num2」に代入。最後の5行目で2つの入力された数値を足して文字列と一緒に出力しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

気になること&知らないことをひたすらググることを得意としています。このブログでは最近気になったことを中心に記事を書いていきます。記事には間違った情報を書かないように細心の注意を払っていますが、もし誤りがあった場合はコメントやお問い合わせフォームからご指摘いただければ幸いです。