tech.chakapoko.com
Home / Go言語

[Go言語]forループでの繰り返し処理

if-elseでの条件分岐

条件分岐はif文を使います。if文を使ってfizzbuzzプログラムを書いてみます。

package main

import "fmt"

func main() {
	for i := 0; i < 100; i++ {
		if i % 3 == 0 && i % 5 == 0 {
			fmt.Println("fizzbuzz")
		} else if i % 3 == 0 {
			fmt.Println("fizz")
		} else if i % 5 == 0 {
			fmt.Println("buzz")
		} else {
			fmt.Println(i)
		}
	}
}

switch-caseでの条件分岐

ifの他にswitch-caseも条件分岐のために使えます。

package main

import "fmt"

func main() {
	for i := 0; i < 100; i++ {
		switch i % 2 {
		case 0:
			fmt.Println("even")
		case 1:
			fmt.Println("odd")
	}
}

上のコードでは i % 2 の値に一致するcase句が実行されます。i % 2 が0であれば "even"、1ならば "odd" と表示されます。

switchの後の式は省略することも可能で、その時は true が入っていると見なされます。それを利用してまたfizzbuzzプログラムを書いてみます。

package main

import "fmt"

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