Go言語 switch文のサンプル

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

目次 switch文とは
  switch文のサンプル
  処理を続けて実行する(フォールスルー)
  caseの後に条件を追加する
  switch文の中でif文を使用する

switch文とは

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

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つめ")
	}
}

処理を続けて実行する(フォールスルー)

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とは"落ちる"という意味です。

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の後で比較(<)を行っています。

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文を使用しています。
%は、割り算の余りを求めます。

関連の記事

Go言語のインストールとhello world(Windows10)
Go言語 if文のサンプル
Go言語 for文 処理を繰り返す(break/continue)

△上に戻る