MENU

【3分で理解する】golangのswitch文でcaseが複数ある場合の挙動について

本ページではアフィリエイトリンク(PR)が含まれています

今回はgolangのswitch文でcaseが複数ある場合の挙動について解説していきます。

目次

switch文

Go言語にはswitch文を使うことで一つの変数から条件分岐を判定を行うことができます。

func main() {
	a := 2
	switch a {
	case 1:
		fmt.Println("×")
	case 2:
		fmt.Println("〇")
	case 3:
		fmt.Println("×")
	}
}

このように変数aの値によって処理を分岐することができます。今回はa=2のため、実行結果はとなります。

caseには複数の値を書ける

golangのswitch文ではcaseの複数の条件を書くことができます。

func main() {
	a := 2
	switch a {
	case 1:
		fmt.Println("×")
	case 2, 3:
		fmt.Println("〇")
	case 4:
		fmt.Println("×")
	}
}

例えば2番目のcase条件を「2,3」としてみました。この場合でも実行結果はと出力されます。

つまりcaseに複数の条件を書くことで、OR条件とすることができるのです。

func main() {
	a := 3
	switch a {
	case 1:
		fmt.Println("×")
	case 2, 3:
		fmt.Println("〇")
	case 4:
		fmt.Println("×")
	}
}

aに3を代入しましたが、この実行結果もです。

func main() {
	a := 4
	switch a {
	case 1:
		fmt.Println("×")
	case 2, 3:
		fmt.Println("〇")
	case 4:
		fmt.Println("×")
	}
}

aに4を代入すると最後の条件式に引っ掛かるため×が出力されます。

どの条件式も当てはまらなかった場合

次にどのcaseにも引っ掛からなかった場合についてです。

func main() {
	a := 5
	switch a {
	case 1:
		fmt.Println("×")
	case 2, 3:
		fmt.Println("〇")
	case 4:
		fmt.Println("×")
	}
}

この実行結果は何も起きません。a=5ですが、どのcaseにも一致しないため処理が行われません。

func main() {
	a := 5
	switch a {
	case 1:
		fmt.Println("×")
	case 2, 3:
		fmt.Println("〇")
	case 4:
		fmt.Println("×")
	default:
		fmt.Println("どれにも合致しませんでした。")
	}
}

全てのcaseを想定できない場合はdefaultを使うことで、全てのcaseに合致しなかった場合の処理を実行してくれます。

このコードの実行結果は「どれにも合致しませんでした。」を表示されます。

golangをもっと詳しくなりたい方に

golang学習のために筆者が実際に受講したUdemy教材をまとめています。

あわせて読みたい
【入門】golangの学習におすすめのUdemy教材5選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...

golang学習のために筆者が実際に読んでおすすめしたい本をまとめています。

あわせて読みたい
【入門】golangの学習におすすめの本/書籍7選 これから業務でgolangを使うことになった方、これからgolangを使ってキャリアを歩んでいきたいという方でどのように学習していこうか悩んでいる方もいるかと思います。 ...
タメになったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次