制御構造 - Go

最終更新日: 2026-07-25

TOP(About this memo)) > 一覧(Go) > 制御構造

インデント

変数スコープ

func main() {
	r := "a "
	if true {
		r := "b " // 同じ変数を宣言できる
		print(r) // より内側の変数が 優先される
		r = "c " // より内側の変数が 優先される 
		print(r) // より内側の変数が 優先される 
	}
	print(r)
}
// b c a 

switch

func checkNumber(i int) {
	switch i {
	case 1: // これは何も実行されないので注意。
	case 2, 3, 5, 7:
		fmt.Println("primary number")
		fallthrough // これはdefaultブロックも実行される。
	default:
		fmt.Println("good number")
	}
}

if

for

for i := 0; i < 10; i++ {
  sum += i
}
sum := 1
for ; sum < 1000; {
  sum += sum
}
for {
}
for i, v := range pow {
  fmt.Printf("2**%d = %d\n", i, v)
}
for i, _ := range pow
for _, value := range pow
for range []string{"a", "b", "c"} {
  fmt.Println("test")// testが3回出力
}
func main() {
outer:
	for a := 1; a < 10; a++ {
		fmt.Println(a)
		switch a {
		case 4:
			break // この場合はswitchをbreakするのみ
		case 5:
			break outer
		default:
			continue
		}
	}
}