rubyを始めたばかりの初心者です。
質問なのですが、コマンドプロンプトで "ファイル名⁺.rb"の後に数字を入力して
その数字がrbファイル内で変数として演算で使われ最終的な結果が出力されるには
どのように行えばよろしいでしょうか?
説明が下手で申し訳ないのですが詳しく教えていただければ幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
入力された引数が文字列として格納されているのは ARGV という名前の配列です。
数字を十進整数として扱うのであれば ARGV[0].to_i で十進整数に変換できます。
数字を浮動小数点数として扱うのであれば ARGV[0].to_f で浮動小数点数に変換できます。
ただし引数が入力されていないときには ARGV の値は nil になりますが、
そのときに ARGV[0].to_i の値は 0 になり、 ARGV[0].to_f の値は 0.0 になって
しまいます。ruby のソースコード内で引数が入力されているかどうかをチェックするように
された方がよいと思います。
投稿2015/02/22 07:46
総合スコア11
0
ベストアンサー
lang
1# coding: utf-8 2 3# 2 つの引数が数値の場合は 乗算、 4# 2 つの引数が少なくとも1つが文字列の場合は 文末にpを追加、 5# それ以外の引数の場合は errorと表示 6 7if ARGV.count == 2 8 if /\A\d+\z/ =~ ARGV[0] && /\A\d+\z/ =~ ARGV[1] 9 puts ARGV[0].to_i * ARGV[1].to_i 10 else 11 puts "#{ARGV[0]} #{ARGV[1]} p" 12 end 13else 14 puts 'error' 15end
実行例
$ ruby args.rb 10 3 30 $ ruby args.rb a b a b p $ ruby args.rb 1 error
投稿2015/02/22 13:58
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
... コマンドプロンプト上の引数が数字であれば×10を また引数が文字であれば文字の後ろに”p”を加える ...
lang
1# coding: utf-8 2 3if ARGV.size == 1 4 5 if /\A\d+\z/ =~ ARGV[0] 6 # 数字が指定されていた場合 7 puts ARGV[0].to_i * 10 8 else 9 # その他 10 puts "#{ARGV[0]}p" 11 end 12 13end
実行例
ruby args.rb 12 120 $ ruby args.rb 12x 12xp
投稿2015/02/22 13:16
総合スコア22324
0
サンプルを書いてみました。
lang
1# coding: utf-8 2 3# 2つの変数で演算を行う。 4def calc(a, b) 5 a * 100 + b 6end 7 8# コマンドラインに指定された数字を変数に保存する。 9count = ARGV.size 10a = (count > 0)? ARGV[0].to_i : 0 11b = (count > 1)? ARGV[1].to_i : 0 12 13# 変数を使って演算する。 14result = calc(a, b) 15 16# 演算結果を出力する。 17puts result
実行例を示します。
$ ruby args.rb 0 $ ruby args.rb 1 100 $ ruby args.rb 1 2 102
投稿2015/02/22 12:23
総合スコア22324
0
takeshi_38ka0 さんの言うとおりですが具体的に書くとこんな感じです。
lang
1# add.rb というファイルに保存する 2result = ARGV[0].to_i + ARGV[1].to_i 3puts "足した結果は #{result} です。"
$ ruby add.rb 12 34 足した結果は 46 です。
投稿2015/02/22 10:53
総合スコア1342
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/22 12:14