こんにちは、いなむーです。

最近Rubyを勉強しはじめました。
毎日書かないと理解度はあがらないので、色々試している日々です。
会社のチームでもRuby勉強会をやってまして、そこでRubyに詳しいメンバーから、fizzbuzz問題をやると良いと言われたので、やってみることにしました。

fizzbuzz問題とは、

  • 1〜100までの数字を表示させる。
  • 3の倍数の時にはfizzと表示させる。
  • 5の倍数の時にはbuzzと表示させる。
  • 15の倍数の時にはfizzbuzzと表示させる。
  • というものです。

    さっそくやってみました。
    [code]
    #!/usr/bin/ruby

    for num in 1..100
    if num%15 == 0
    puts "fizzbuzz"
    next
    end
    if num%5 == 0
    puts "buzz"
    next
    end
    if num%3 == 0
    puts "fizz"
    next
    end
    puts num
    end
    [/code]

    これは完全にシェルスクリプトですね〜笑
    Rubyの意味があんまり(ry
    ということで、少し調べてみて書き直してみました。

    [code]
    #!/usr/bin/env ruby

    (1..100).each{ | num |
    num = "fizzbuzz" if num%15 == 0
    num = "buzz" if num%5 == 0
    num = "fizz" if num%3 == 0
    puts num
    }
    [/code]

    ループ処理をfor文ではなく、eachに書き換え、if文も省略してみました。
    17行で書いてた処理が8行になったので大分コード量が小さくなったと思います。
    わかりにくくならない程度に、省略系を利用しながら、どんどん色々なコードに挑戦してみようと思います。

    Rubyを書けるインフラエンジニアに俺はなる!

    以上。

    カテゴリー: Ruby