こんにちは、いなむーです。
最近Rubyを勉強しはじめました。
毎日書かないと理解度はあがらないので、色々試している日々です。
会社のチームでもRuby勉強会をやってまして、そこでRubyに詳しいメンバーから、fizzbuzz問題をやると良いと言われたので、やってみることにしました。
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を書けるインフラエンジニアに俺はなる!
以上。
コメントを投稿するにはログインしてください。