9
1

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.

Ruby初学者が単純なプログラムを書いてみた。

Last updated at Posted at 2019-09-04

はじめに

初投稿です。Rubyを勉強し始めて3日目になります。
改めてメソッドの多さに驚いています。見よう見真似ですが、
単純すぎるプログラムを書きました。単純なプログラムと言ってもエラーが出たので
備忘録も兼ねて、紹介していきたいと思います。

どの人生を選んでも幸せになれない女のプログラム。


scene = 'life'
while true
case scene

    if scene == 'life'
        puts 'あなたはどの人生を生きたいですか'
        sleep 1
        puts '1 仕事に生きる'
        puts '2 専業主婦になる'
        puts '3 仕事も結婚も手に入れようとする'
        x = gets.to_i
        case x.to_i
        if x.to_i == 1
            scene = 'work'
        elsif x.to_i == 2
            scene = 'marry'
        elsif x.to_i == 3
            scene = 'get happy'
        else '???'

        end

    when 'work'
        puts '私は仕事に生きる。結婚は遅くてもいいや'
        sleep 1
        puts 'ー 気づけば周りは既婚者ばかり ー'
        sleep 1
        puts '孤独で寂しい…'
        puts 'the end'
        exit
    end

    when 'marry'
        puts '早く結婚して、幸せな専業主婦になりたい'
        sleep 2
        puts '晴れて結婚したけど'
        sleep 2
        puts '専業主婦は…暇!'
        sleep 1
        puts 'the end'
        exit
    end

    when 'get happy'
        puts '幸せな結婚もしたいし、仕事も充実させたい'
        sleep 1
        puts '二兎を追う者は一兎をも得ず'
        sleep 2
        puts '仕事も恋愛も追い求めすぎて空回り…'
        sleep 3
        puts 'the end'
        exit
    end
end

内容はあまりにも批判を受けそうなので気にしないでほしいです。
Ruby入門書でif文をcase文に書き直すとシンプルになると学んだため、両方組み合わせて書いてみました。
しかし、このままではエラーがたくさん出ます。

間違いから学んだこと。

上のプログラムを実行すると、
unexpectedexpectingなどのエラーが出てきました。
すぐさま意味を調べてみると、
unexpected → 予想外
expecting → 期待して
と、出てきました(英語力…)

unexpected keyword_whenexpecting keyword_end
whenは予想外だった…!や、endを期待しているよ。などと言っているのだな。。ふむ。。

とりあえず英語が出てきても焦らず調べるべきだなと感じました!
訂正後はこちら。



scene = 'life'
while true
case scene
when 'life'
        puts 'あなたはどの人生を生きたいですか'
        sleep 1
        puts '1 仕事に生きる'
        puts '2 専業主婦になる'
        puts '3 仕事も結婚も手に入れようとする'
        x = gets.to_i
        case x.to_i
        when 1
            scene = 'work'
        when 2
            scene = 'marry'
        when 3
            scene = 'get happy'
        else '???'

        end

    when 'work'
        puts '私は仕事に生きる。結婚は遅くてもいいや'
        sleep 1
        puts 'ー 気づけば周りは既婚者ばかり ー'
        sleep 1
        puts '孤独で寂しい…'
        puts 'the end'
        exit
    
    when 'marry'
        puts '早く結婚して、幸せな専業主婦になりたい'
        sleep 2
        puts '晴れて結婚したけど'
        sleep 2
        puts '専業主婦は…暇!'
        sleep 1
        puts 'the end'
        exit
    
    when 'get happy'
        puts '幸せな結婚もしたいし、仕事も充実させたい'
        sleep 1
        puts '二兎を追う者は一兎をも得ず'
        sleep 2
        puts '仕事も恋愛も追い求めすぎて空回り…'
        sleep 3
        puts 'the end'
        exit
    end
end

さいごに

このようにエラーから学び取れることはたくさんあるということに気づけました。もっと複雑なプログラムが書けるようにまだまだ勉強頑張りたいです。
プログラミングを学ぶに当たって、とにかくサンプルでもなんでも、書いて動かして見ることが大切だと感じます。
たくさん試すことで、新しいものやアイデアが生み出せるのではないかという信念を貫きたいです…!(プログラミングに関わらず…)

9
1
1

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
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?