質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Ruby

    8158questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7651questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 5

    2139questions

Rubyで名前、年齢、特技の表示をしたい

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 174

tsuyo244s

score 25

Rubyで名前、年齢、特技を表示したいです。

出力例
私の名前は"@nameの値"です 
年齢は"@ageの値"です 
特技は"@skillの値"です

条件は以下の通りです。
・インスタンス変数として、名前、年齢、特技を保持する変数を持つ
・それぞれをオブジェクトを作成後も変更可能にする。
・それぞれを出力する関数を持つ
・特技は配列でも出力できるようにする

class MegaGreeter
  attr_accessor :name
  attr_accessor :age
  attr_accessor :skill

  def initialize(x, y, z)
    @name = x
    @age = y
    @skill = z
  end

  def names
    puts "私の名前は#{@name}です"
  end

  def ages
    puts "年齢は#{@age}です"
  end

  def skills
    puts "特技は#{@skill}です"
  end
end

user1 = MegaGreeter.new("一郎", 20, "サッカー")
user1.names
user1.ages
user1.skills

user2 = MegaGreeter.new("二郎", 19, "野球")
user2.names
user2.ages
user2.skills

user3 = MegaGreeter.new("三郎", 18, "サッカー,野球,水泳")
user3.names
user3.ages
user3.skills

・特技は配列でも出力できるようにする
というのができないです。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • tsuyo244s

    2018/06/29 19:02

    「私の名前はtorouです」と表示したい場合は、 puts "私の名前は”@nameの値”です"でよいのでしょうか?

    キャンセル

  • mather

    2018/06/29 19:04

    それを質問に書くのではなくソースコードに書いて実行してみてください。

    キャンセル

  • tsuyo244s

    2018/06/29 22:15

    返信が遅くなってしまい申し訳ありません。コードの修正とエラーの内容を追加しました。Ruby初心者です。よろしくお願いします。

    キャンセル

回答 1

0

def でメソッドを定義するときは名前が必要です。名前を決めてメソッドを作ってください。以下の例だと hoge がメソッド名です。

def hoge
    "sample"
end

ただし、 attr_accessor によってすでに name や name= といった名前のメソッドは定義済になっているので、変数名と全く同じメソッド名は避けてください。

それと、また全角空白文字が含まれています。エディタの文字列検索で探すなどして半角スペースにすることをおすすめします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/29 23:41

    エラーはなくなったのですが、ターミナルに
    私の名前は"@nameの値"です
    年齢は"@ageの値"です
    特技は"@skillの値"です
    が表示されません。次はどうしたらよいでしょうか?
    また、全角空白文字は未だ発見できていません。もう少し探して見ます!
    よろしくお願いします。

    キャンセル

  • 2018/06/30 13:18

    私の名前は"@nameの値"です
    年齢は"@ageの値"です
    特技は"@skillの値"です
    は表示されました!

    ・特技は配列でも出力できるようにする
    というのがわからないです。
    よろしくお願いします。

    キャンセル

  • 2018/06/30 13:57

    何度も書きますが、何がわからないのかをきちんと書いてください。答えようがありません。
    ・データはできたが、配列で出力する方法がわからない
    ・「配列」の意味がわからない
    ・問題設定の意味がわからない

    キャンセル

  • 2018/06/30 17:53

    返信が遅くなってしまい申し訳ありません。
    上記のコードで三郎の特技について
    "特技はサッカー,野球,水泳です"
    と表示することはできたのですが、正しい記述かどうかがわかりません。
    ・「配列」の意味
    ・「配列」の正しい使い方
    ・「配列」で出力する方法
    を教えていただきたいです。
    よろしくお願いします。

    キャンセル

同じタグがついた質問を見る

  • Ruby

    8158questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • Ruby on Rails

    7651questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 5

    2139questions