概要
今回のブログポストではGolangでswitch
文を使う方法について説明します。このブログポストで紹介するコードは次のリンクで確認できます。
switch文
if
文は条件を検査してコードブロックを実行しますが、switch
文は値を検査してコードブロックを実行します。
switch 比較値{
case 値1:
コードブロック
case 値2:
コードブロック
default:
コードブロック
}
Golangでswitch
文を使う方法について調べるためmain.go
ファイルを生成して次のように修正します。
package main
import "fmt"
func main() {
a := 2
switch a {
case 1:
fmt.Println("a == 1")
case 2:
fmt.Println("a == 2")
case 3:
fmt.Println("a == 3")
default:
fmt.Println("a is not 1, 2 or 3")
}
}
プログラムを実行すると次のような結果が確認できます。
# go run main.go
a == 2
break & fallthrough
他の言語ではswitch
文を使う時、break
を使ってコードブロックを終了しますが、Golangではbreak
を省略します。
他の言語ではbreak
文を省略したら、次のケース文も一緒に実行されます。しかし、Golangではbreak
文がそもそもないので、次のケース文も一緒に実行したい場合は、次のようにfallthrought
を使う必要があります。
package main
import "fmt"
func main() {
a := 2
switch a {
case 1:
fmt.Println("a == 1")
case 2:
fmt.Println("a == 2")
fallthrough
case 3:
fmt.Println("a == 3")
default:
fmt.Println("a is not 1, 2 or 3")
}
}
上のコードを実行すると以前とは違って次のように、次のケースブロックも実行されることが確認できます。
# go run main.go
a == 2
a == 3
複数の値検査
Golangでは次のように複数の値を検査することができます。
switch 比較値{
case 値1, 値2:
...
case 値3, 値4:
...
case 値5:
...
default:
...
}
Golangで複数値を検査する方法を確認するためmain.go
ファイルを次のように修正します。
package main
import "fmt"
func main() {
a := 2
switch a {
case 1, 3, 5, 7, 9:
fmt.Println("Odd")
case 2, 4, 6, 8:
fmt.Println("Even")
default:
fmt.Println("Please insert 0 < value < 10.")
}
}
上のプログラムを実行すると次のような結果が確認できます。
# go run main.go
Even
初期化文
switch
文もif
文と同じように初期化文を使うことができます。
switch 初期化文; 比較値{
case 値1, 値2:
...
case 値3, 値4:
...
case 値5:
...
default:
...
}
switch
文で初期化文を使う方法を確認するためmain.go
ファイルを次のように修正します。
package main
import "fmt"
func main() {
switch a := 2; a {
case 1, 3, 5, 7, 9:
fmt.Println("Odd")
case 2, 4, 6, 8:
fmt.Println("Even")
default:
fmt.Println("Please insert 0 < value < 10.")
}
}
上のプログラムを実行すると下記のような結果が確認できます。
# go run main.go
Even
完了
これでGolangでswitch
文を使う方法を確認してみました。Golangでswitch
文は他の言語とは違ってbreak
を省略することができるし、fallthrough
を使って次のケースぶんを一緒に実行することができます。また、if
文と同じように初期化文を使えることを確認しました。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。