はじめに
一日一善ならぬ一日一FizzBuzzでもしてみよう、ということでアドベントカレンダーを立ち上げました。
- 毎日異なる言語でFizzBuzzをしてみます。
- 速度やコード量削減等にはこだわらず、ベーシックに実装していきます。
- 触ったことのない言語が大半なので、至らないところは優しくフィードバック頂けると泣いて喜びます。
初日ぐらいは馴染みのある言語から始めたい、ということで、本日はGo言語でFizzBuzzしてみましょう。
扱う言語
FizzBuzz
main.go
package main
import "fmt"
func main() {
for i := 1; i < 101; i++ {
if i%15 == 0 {
fmt.Println("FizzBuzz")
} else if i%3 == 0 {
fmt.Println("Fizz")
} else if i%5 == 0 {
fmt.Println("Buzz")
} else {
fmt.Println(i)
}
}
}
- ひとまずベーシックに書いてみましたが、個人的には
else if
まで使うのがあまり好きではないので、i%3 == 0
やi%5 == 0
をあらかじめ計算し、そのbool値の組合せで単発if分を組んでearly returnさせるようにしたいところです。(賛否両論ありそうなので、今回はベーシックに…。)
おまけ:実行方法
go mod init fizzbuzz
# edit main.go
go run .