質問: 1を入れてintだと宣言してるのかな?と思ったり。 参考にするサイトを間違えているか、 僕が間違えているか。(まぁ僕の適当に作ったので冗長的な感じが否めないけど) あと 改行に関して ``` print "長方形の面積は",menseki,"だよ\n" ``` でも、 ``` puts "長方形の面積は",menseki,"だよ" ``` でもいいと思うのですが、一般的にどちらですか? 【追記】 処理結果について質問 今回ユーザの入力で短辺*長辺を計算して面積を出してますが、 出力される面積がdoubleっぽいです。 短辺で5 長辺で6と入力すると、 面積が30.0と出力されます。 30で出力したい場合はどうすればよいですか?
回答: 最初に変数宣言してInt型に指定したいと言う思惑があるにすれ、のちの`.to_f`でfloat型に変換してしまってるのでよくわからないコードですね。 改行を伴う文字列の出力の際には `puts hogehoge` これでいいと思います。 `print hogehoge`ですと文字列が改行されずに横並びに出力されてしまいます。 あとwhileの際に再び ``` print "長方形の短辺を入力してね!短辺だよ!" tanpen = readline.to_f print "長方形の長辺を入力してね!長辺だよ!" cyouhen = readline.to_f ``` と記述するのはDRYに反しているので 自分がこのコードを書くとしたら ``` class Squea attr_accessor :tanpen, :cyouhen def initialize @tanpen = 0 @cyouhen = 0 end def self.getter puts "長方形の短辺を入力してね" @tanpen = gets.to_f puts "長方形の長辺を入力してね" @cyouhen = gets.to_f end getter while @tanpen > @cyouhen puts "短辺が長辺より長いという謎事象が起きてるよ!もう一回入力してね。" getter end menseki = @tanpen * @cyouhen puts "長方形の面積は#{menseki}だよ" end ``` これでいいと思います