プログラミングの問題で困った
標準入力?
「標準入力から得られるインプットを用いて、アウトプットをする。」
これはなんとなく意味がわかる。
次に標準入力の参考例を見る。
例えば勉強中のRubyなら
- while line=gets
- puts line.chomp.upcase
- end
こんな具合。これの意味がどうもわからなかった。昨日解決したので記す。
これだけだとさっぱりなので、インプットとアウトプットを参考にする。
インプット
hello
world
アウトプット
HELLO
WORLD
このインプットの受け取りかたは複数行のインプットがある時に使う受け取りかたで、helloで1行、worldで2行という形。while line=gets は1行づつ読み込んで行きまっせ。ということなのだ。
この参考を無視しまくって、x=gets.to_iとか、x=readlinesとかしていたから、
いつまでも全ての行の標準入力が受け取れなくて、エラーが返ってきていたようだ。
Whileの中でなにをやっているのか
whileは確か、真の限り実行をするよということなので、getsできる限り入力を受け付けて実行していくよということか。chompで改行を削除して、upcaseで大きくしている。
1行目のhelloで puts line.chomp.upcaseを実行して、2行目でも同様に実行を繰り返す手順となる。
プログラミングの問題を解こうにも・・
初学者としてはこの辺りを書籍などで解説をしてもらえればありがたいと思う。
例えば言語で配列やら条件分岐やら記法やら文法として網羅されているが、
標準入力からデータをどうやって受け取るかが少なくとも自分はわからなかった。
だから解答を書く時while文の中に書くのかどうするのかすらもわからなかった。