Go言語 switch文のサンプル

Go言語のswitch文のサンプルです。

確認環境
・go 1.12.6

目次

switch文

switch(条件){
  case 値 :
    処理
  case 値 :
    処理
   ・・・
  default:
    処理
}
  • 条件の値とcaseの値が一致すれば、配下の処理が実行されます。
  • Javaではbreakでswitch文を抜けますがGo言語ではbreakは不要です。
  • 処理を抜けずに続けて行いたいときは、fallthroughを使用します。
  • defaultは、条件の値がどのcaseの値にも一致しない時に実行されます。省略可能ですが書いたほうが良いです。
  • case 値の箇所は、case 式とすることもできます。
  • 以下は、Go言語公式のEffective Goのswitch文のリンクです。
    https://golang.org/doc/effective_go.html#switch

コード

サンプルのコードです。
11行目のcase 2で値が一致するので、その配下の処理が実行され、breakでswitch文を抜けます。

package main
import "fmt"

func main(){
	i := 2

	switch i {
	case 1:
		fmt.Println("a1")
	case 2:
		fmt.Println("a2") // a2が出力される
	default:
		fmt.Println("a3")
	}
}

処理を続けて実行する(fallthrough)

処理を続けて実行するサンプルです。

package main
import "fmt"

func main(){
	i := 1

	switch i {
	case 1:
		fmt.Println("a1") // a1が出力される
		fallthrough
	case 2:
		fmt.Println("a2") // a2が出力される

	default:
		fmt.Println("a3")
	}
}

5行目は、変数に値をセットしています。
8行目の条件に一致するので9行目が実行されます。
10行目は、fallthroughがあるので12行目も実行されます。

判定に式を使用する

判定に式を使用するサンプルです。

package main
import "fmt"

func main(){
	i := 5

	switch {
	case i < 3:
		fmt.Println("a1")
	case i < 10:
		fmt.Println("a2") // a2が出力される
	default:
		fmt.Println("a3")
	}
}

8行目と10行目は、比較の対象が値ではなく、式(i <数値)です。
また、7行目のswitchの後に変数は不要です。

関連の記事

Go言語のインストールとhello worldを表示する(Windows10)
Go言語 if文のサンプル
Go言語 for文のサンプル(break/continue)

△上に戻る