nyarn.tech

にゃーん

go言語でfizz buzz

ググったらすぐ出てきそうな感じですが、言語の特徴を掴むにはいいのかなと思い書いてみました。

package main

import "fmt"

func fizzbuzz(max int) {
    for i := 0; i <= max; i++ {
        fizz := i % 3 == 0
        buzz := i % 5 == 0
        switch {
        case fizz && buzz:
            fmt.Println("fizzbuzz")
        case fizz && !buzz:
            fmt.Println("fizz")
        case !fizz && buzz:
            fmt.Println("buzz")
        default:
            fmt.Println(i)
        }
    }
}

func main() {
    fizzbuzz(100)
}

golangJavaでいうvoidな関数を作りたいときはこれでいいのかなあ。
動いたし怒られなかったから多分いい気がする。うん。
phpのswitch文だと
switch(true)
とか毎回breakしたりと面倒なのですがgoはこの辺もすっきりかけますね。

オシャレポイントは case fizz && buzz のあたりでしょうか。
とりあえずgo tourをコツコツやっていきます。