Go言語 switch文のサンプル

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

確認環境
・go 1.12.6

目次

switch文

switch文のサンプルです。

package main
import "fmt"

func main(){
	a := "2"

	switch a {
		case "1":
			fmt.Println("1つめ")
		case "2":
			fmt.Println("2つめ") // 2つめが出力される
		default:
			fmt.Println("3つめ")
	}
}

構文

switch(条件){
  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

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

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

package main
import "fmt"

func main(){
	a := "1"

	switch a {
		case "1":
			fmt.Println("1つめ")
			fallthrough
		case "2":
			fmt.Println("2つめ") // 2つめが出力される
		default:
			fmt.Println("3つめ")
	}
}

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

switch文の中でif文を使用する

switch文の中でif文を使用するサンプルです。

package main
import "fmt"

func main(){
	a := 3

	switch a {
		case 3:
			if a % 2 == 0 {
				fmt.Println("偶数です")
			}else{
				fmt.Println("奇数です") // 出力される
			}
		default:
			fmt.Println("3つめ")
	}
}

9行目はswitch文の中のcaseの後にif文を使用しています。
%は、割り算の余りを求めます。

caseの後に条件を追加する

caseの後に条件を追加するサンプルです。

package main
import "fmt"

func main(){
	i := 8

	switch {
		case i < 5:
			fmt.Println("1つめ")
		case i < 10:
			fmt.Println("2つめ") // 2つめが出力される
		default:
			fmt.Println("1つめ")
	}
}

7行目のswitchの後に変数がありません。
8,10行目はcaseの後で比較(<)を行っています。

関連の記事

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

△上に戻る