GroovyでFizzBuzz
過去記事の続きで、Gradleのドキュメントやらを読みながら、Groovyの勉強を開始。
Gradleをいれてみた
Groovyは以前、Grailsを使用していた時にやっていたんだけど、
途中からほとんどJavaと変わらない感じで書いてた。
この機会にGroovyらしく書けるようになるために、コツコツやっていこうかなと。
というわけで、まずは入門という事でFizzBuzzを書いてみた。
なんつーか、for文が短くなっただけって結果に。
(1..100).each{println(it%3==0?it%5==0?'FizzBuzz':'Fizz':it%5==0?'Buzz':it)}
とりあえず色んな書き方の前に、一番短そうなやつを見つけた。
100.times{println('Fizz'*(it%3/2)+'Buzz'*(it%5/4)?:++it)}
ポイントは、
- 文字列を引数文だけ繰り返す「*」
- 剰余の最大値に着目
- 0..99なので++
特に「*」を抑えてないと、その先の工夫には辿り着けないってオチ。