Rubyで下記の実行結果を表示したいのですが、コード下部の性別別による表示がうまくいかず、解決方法をご教授いただけないでしょうか
【記述したコード】 class User attr_accessor :last_name attr_accessor :first_name attr_accessor :gender attr_accessor :age def initializer(last_name, first_name, gender, age ) self.last_name = last_name self.first_name = first_name self.gender = gender self.age = age end def print_greetings puts "今日は。#{self.last_name} #{self.first_name} です。性別は#{self.gender}です。 歳は#{self.age}です。" end def male return self.gender == "男" end end user1 = User.new user1.last_name = '佐藤' user1.first_name = '一郎' user1.gender = '男' user1.age = 24 user1.print_greetings if user1.male? puts "#{user1.last_name}は男性です!" else puts "#{user1.last_name}は女性です!" end
【実際に実行された結果】 今日は。佐藤 一郎 です。性別は男です。 歳は24です。 Traceback (most recent call last): /home/ec2-user/environment/Ruby/progate.rb:34:in `<main>': undefined method `male?' for #<User:0x00000000021f6470> (NoMethodError) Did you mean? male
【実行したい結果】 こんにちは。佐藤一郎です。性別は男です。歳は24です。 佐藤は男性です!
原因としては、下記で実行しするmaleメソッドが正しく定義されていないためだと考えられます。
maleというメソッドを作成して「男性の場合trueを表示」、という動きになると思うのですが記述がわからず困っています・・・
if user1.male? puts "#{user1.last_name}は男性です!" else puts "#{user1.last_name}は女性です!" end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/25 09:48