2
0

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 5 years have passed since last update.

失敗談その1

Last updated at Posted at 2018-07-31

標準入力について

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`に代入されてるのは文字列なので計算できないよ!という
エラーだったのね・・・
2
0
3

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?