標準入力について
Rubyの標準入力であるgets
。
gets
は「get string」との略で、コンソールからキーボード入力した
文字を「文字列として取得」するメソッドなのだが・・・
単純にgets
は標準入力として値をとる物と思っており、
某試験でコンソールでキーボード入力した値を計算する、という質問が出て。
コンソールから入力した数値をそのまま計算するだけか、問題ないかなと
以下の文を書いてみたところ。
input_lines = gets
input_lines = input_lines ** 2
input_lines = input_lines * 6
puts input_lines
Main.rb:4:in <main>': undefined method **' for "6":String (NoMethodError)
Did you mean? *
え、何このエラー?
`**`って乗算で使えたよな・・・?とうろたえ。
色々試してみたものの上手くいかずその問題については見事タイムオーバー。
後でたのしいRubyを確認してみたら`gets`は入力した文字は文字列として
取得すると・・・
さらに詳しく調べてみたら`gets`は「get string」の略ですよと知り。
じゃあこうするべきだったのかとプログラムを修正。
```ruby:
input_lines = gets.to_i
input_lines = input_lines ** 2
input_lines = input_lines * 6
puts input_lines
無事プログラムを動かすことが出来ました。
`input_lines`に代入されてるのは文字列なので計算できないよ!という
エラーだったのね・・・