【Go言語】昔スウィーティーってちょっと流行ってたよね – Switch
なんとなく響きが似てたのでこんなタイトルにしていますが、なんの意味もございません。_(:3」∠)_キニシナイデネ
それでは「A Tour of Go」を進めてみます。
前回は演習ってことで、やや難しい数式とかも出てきましたが、今回は if のすごい版的な switch という制御文が学習のお題となります。
該当ページはこちら
今回のお題になるページはこちら、いつもどおりURLをおいておきますね。
「Switch」ハコチラ>(´・ω・)つ https://go-tour-jp.appspot.com/flowcontrol/9
「Switch evaluation order」ハコチラ>(´・ω・)つ https://go-tour-jp.appspot.com/flowcontrol/10
「Switch with no condition」ハコチラ>(´・ω・)つ https://go-tour-jp.appspot.com/flowcontrol/11
というわけで、今回は3ページ分進めます。
お題は switch
他の言語では if に似た制御文になる switch ですが、Go でも概ね同じ動きのようです。
ただ、細かい部分では少し異なるようなので、改めて仕様を確認しながら進めてみます。
ポイントを抜き出す
ザックリとポイントを抜き出しました。
- switch の書き方と働き
- 評価順序
- 評価値なしの switch
順番に詳細を見ていきます。
switch の書き方と働き
だいたいこんな感じです。
評価(条件)に応じた処理が複数分岐するときに使用すると便利です。
if でも同様の事ができますが、switch のがスマートに掛ける場合が多いです。
また、case に書く <値> についてですが、数値の定数(リテラル値)に限らず文字列やファンクションなども評価できるようです。
実際にプログラミングしてみますと…
こんな雰囲気になります。
正確な文法については、言語仕様(Switch statements)に記載があります。
評価順序
switch の評価順です。
上から順に case の値と比較していくようです。
他の言語(C言語とか)では、case句に書く処理の最後で break を書き、以降の case に書いた処理をしないよう、明示的に switch を終了させるんですが、Go の場合は暗黙的(自動的)に break されるようです。
評価値なしの switch
Go の switch は評価値を省略できるようです。
例えば、先程のプログラムを評価値なしにしてみますと…
と、こんな感じになります。
case 部分で条件を完結させてしまっているので、本来の switch 的な使い方じゃない気がしますが…、一応、if の代用としてシンプルな表現ができると説明にあります。
今回のまとめ
今回は以上ですね。
それではポイントを纏めてみます。
- switch の文法は
switch <評価値> {
case <A値>:
<処理>
case <B値>:
<処理>
default:
<処理>
}
と書くんです - case部分は上から順に評価されるんです
- switchの評価値は省略できるんです
switch case も if や for と同様によく使う制御分なので、しっかり頭に入れておきたいですね。
それじゃ~また次回~。٩(๑´3`๑)۶
ディスカッション
コメント一覧
まだ、コメントがありません