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)