
今回は
というテーマでお送りします。
条件分岐については、if 文をお話してきましたが
今回は switch 文についてお伝えしますね。

今回も よろしくお願いします。

今回も、全集中でいきます~。よろしくお願いします。

目次
【Youtube版】
Youtubeでもお伝えしていますので
是非チェックしてくださいね。
【1】switch 文

① switch 文 とは
処理を分岐させたい場合に使用する。
✅ 式に一致する「値」を順に指定して
指定した値の後の処理を実行する。
② 分岐のイメージ
フローチャートを見ておきましょう。

前の処理からは、順次で進んできます。
「式」の部分に比較対象となる式を書きます。
変数を指定する場合が多いです。

そして、任意の数の分岐を書いて
一致する時の「値」と「処理」を書きます。
式が「値1」と一致した場合「処理1」を実行します。

式が「値2」と一致した場合「処理2」を実行します。
式が「値3」と一致した場合「処理3」を実行します。
そして、どれとも一致しない場合「その他の処理」を実行します。

最後に、分岐した全ての線は、元の1本に合流します。
1本の線で入ってきて、1本の線で抜けていく
という書き方、if 構文のパターンと同じです。
例えば、ある変数 div の値を見て。
1 だったら、開始処理を行って…
2 だったら、メイン処理を行う…
3 だったら、終了処理を行う。
そして、その他だったら エラー処理を行う。

…といった事を行いたい場合です。
③ java の書き方
Javaでの書き方を 見ていきましょう。
case 値1:
処理1
break;
case 値2:
処理2
break;
case 値3:
処理3
break;
default:
その他の処理
}
予約後 switch の後に ()丸括弧を書いて
この中に比較対象の式を書きます。
その後に
switch 全体のブロックを記述します。
そして、一致した値とその時の処理を順に記述します。
まず 予約後 case を書いた後に 値を指定して
その後に :(コロン)を書きます。

;(セミコロン)ではありません。
case の行は、ステートメントではなく
「ラベル」というもので「標識」のようなものです。
「一致する値を示していますよ」という
「標識」のようなものと考えて頂いて…
この場合には :(コロン)をつけると理解しましょう。
そしてその後に、処理を記述していきますが
ここは ステートメントを複数 書く事ができます。
処理の終わりには break; を記述します。
ここで、switch 文から抜けるという意味です。

switch 文の場合には、式と同じ値 を見つけたら
その後は 順にステートメントを実行 していきます。
したがって、break; を書かないと、次の値の処理も
続けて実行してしまう事に なるのです。
ですので、ある値の処理の区切りとして break; を
記述すること 覚えておきましょうね。
同様に、値・処理・break を必要数分 記述します。
この場合、式が 値2と一致する場合に
処理2を実行して break 。
値3と一致する場合に、処理3を実行して break です。
そして、default: の記述です。

どの case にも一致しなかった場合に
その他の処理を 実行する事になります。
フローチャートとの対応も 見ておきましょう。
左側がフローチャートで、右側が Java の switch 文です。
対象となる式が、switch の ()丸括弧内に書く式です。
一致する値は case の後に書いて :(コロン)
処理は、caseラベルの次の行から複数記述可能です。
この後に、java プログラムでは break; が必要です。
同様に、caseラベル・処理・break のセットを
必要数分 指定します。
そして、その他を表すキーワードは default: です。
この後に、その他の処理を記述することになります。
この、イメージを持ってプログラミングしましょうね。


確かに、プログラムの見通しが良くなるように思います。
ノートに書いておきます。

積極的に使っていこうと思います。
プログラムが、スッキリしそうですから…。
【2】ポイント

switch 文のポイントを見ていきましょう。
① 式に書ける型
比較対象になる式は
結果が以下のいずれかになる式に限定されます。
・ char
・ short
・ int
・ String
このうち、int または String が良く使われます。

② case に書く値
case の後に記述できるのは 定数式 です。
定数式は、コンパイル時に 値が確定 するものです。
主に、リテラル と 定数 が使われます。
注意点は「変数は指定できない」ということです。
・ リテラルと定数が主。
・ 変数は指定できない。
頭の片隅に入れておきましょう。

③ 一致する場合のみ
switch 文で処理できるのは
式とcaseで指定した値が一致する場合のみです。
< 、> などの関係は表現できません。
このような場合には、if 文を使って
処理することとなります。
この意味で、if文のほうが利用範囲は
広いと言えます。
✅ < 、> などの関係は表現できない。
このような場合には、if 文を使う。
④ default:は省略できる
case で指定した 値 にはいずれも合致しない
という場合は、default: の後の処理を実行しますが
この「その他の場合の処理」は何もしない場合には
default 自体を省略することができます。
default: は省略できる。

if 文で書くより スッキリと書けそうですね。
また1つ、良いことを知った気がします。

着々と、前進しています!
【まとめ】

処理を分岐させたい場合に使用する。
・ 式に一致する「値」を順に指定して
指定した値の後の処理を実行する。
・ byte
・ char
・ short
・ int
・ String
② case に書く値
・定数式を書ける。
・リテラルと定数が主。
・変数は指定できない。
③ 一致する場合のみ
switch が処理できるのは
・式と値が一致する場合のみ
・< 、> などの関係は表現できない。
このような場合には、if 文を使う。
④ defaultは省略できる
・ その他の処理が不要の場合
default: は省略できる。
今回も、ご覧いただき、ありがとうございます。