switch文(すいっちぶん) |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
switch文(すいっちぶん)
条件式によって分岐する選択型の制御文。
一つのswitch文の中に複数の分岐(ケース)を書いて、
実行する処理を選ぶことができる。
switchは日本語で言うと「~に切り替える」という意味。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
条件式の値と、一致したcaseを実行する。
「何番のケースを実行」という感じになる。
caseは日本語でいうと「~の場合」の意味。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
switch文で使う命令
switch |
実行するケースを指定する |
case |
処理を開始する(~の場合) |
break |
処理を打ち切る |
default |
全て一致しなかった場合実行する |
必要に応じて組み合わせて使う |
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
switch文は、4つの命令文を組み合わせて作る。
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
switch(すいっち)はswitch文必須の命令。
switchの()括弧にケース指定のための条件式を書く。
switchのブロック中に、
必要な分だけケース(分岐)を書いていく。
この条件式の値と、ケースの値が一致するものが実行される。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
switchの条件式には、
ケース指定用の変数を一つ書く。
使える変数型は、
・整数型の変数
・文字型(char型)
・文字列型(String型)
(String型が使えるのはJava7から)
小数とかは使えない。
今は整数型だけで考えます。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
次に、switchブロックの中にケース(分岐)を作る。
case文(けーすぶん)とbreak文(ぶれーくぶん)
という命令をセットで使う。
まず、caseで「値」を付ける。
これはケースの「名前」みたいなもの。
そして、caseとbreakの間に実行する処理を書く。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ケースの書き方 |
1、 |
ケースの開始にcaseを書く。 |
|
caseにスペースを空けて、「番号」や「名前」になる値を書く。
・値は、整数 もしくは文字、文字列を書くこと。
・必ず他のケースとは重ならない値にする。
・終わりに「:」(コロン)を書くのを忘れないように注意。 |
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
次に |
2、 |
ケースの終わりにbreakを書く。 |
|
break文(ぶれーくぶん)は処理を打ち切る命令。
そこで処理を終えてswitch文を終了する。
終わりに「;」(セミコロン)を書いこと。
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
|
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
そして |
3、 |
caseとbreak間に実行する処理を書く。 |
|
caseはブロックの開始、breakはブロックの終わり。
ケースの数に制限はない。必要な分だけ繰り返し作る。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
ケースを作る場合の注意点 |
|
|
|
caseの値は1から順番に付ける必要はない |
|
|
|
 |
int
num = 1;
switch(num){
case
999:
System.out.println("いきなり999でも、ご自由にどうぞ。");
break;
}
|
|
|
|
|
|
|
|
|
|
caseの値は、飛び飛びの値でもマイナス値でもOK。順番も関係ない。 |
|
|
|
 |
int
num = 1;
switch(num){
case
1:
System.out.println("とりあえず1から");
break;
case
100:
System.out.println("1からいきなり100に飛んでも大丈夫");
break;
case
-8:
System.out.println("マイナスでも大丈夫");
break;
} |
|
|
|
|
|
|
|
|
|
caseの値は、小数は使えない |
|
|
|
 |
double
num = 0;
switch(num){
case 1.5:
System.out.println("小数は使えません");
break;
} |
|
|
|
|
|
|
|
|
|
caseの値は、switchの変数の型の範囲内で書くこと |
|
|
|
 |
byte
num = 10;//byte型で宣言して初期化
switch(num){
case
9999999:
System.out.println("byte型の範囲を超えてるので不可");
break;
} |
|
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
ここで使ったbreak文は
switch文だけじゃなく他の制御文でも使う。
処理を打ち切る時使う。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
default文(でふぉるとぶん)は、
全てのcaseに一致しなかった
場合に必ず実行される。
・ケースの最後に一個だけ書ける。
・必要がなければ書かなくてもいい。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
switch文の処理の流れ
条件式と一致したケースが実行される。
たくさんケースを書けても一個しか実行できない。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
switch文の変数の有効範囲
caseとbreakの間で宣言した変数はその中でだけ有効。
外からは使えない。
switchのブロック内にはケース以外のコードは書けない。
もちろん、変数の宣言もだめ。注意すること。 |
|
|
|
|
|
 |
 |
|
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 |
|
 |
|
switch文のまとめ(処理) |
|
switch文の処理の内容 |
条件によって処理を分岐処理できる(選択) |
条件式の値とcaseの値が一致したケースが実行される |
実行できるのは条件が一致したケース一つだけ |
書く順番(条件判定の順番)は結果には関係ない |
|
|
|
|
 |
|
 |
|
|
 |
|
 |
|
switch文のまとめ(命令) |
|
switch |
「~切り替える」実行する命令 |
選択用の変数を書く |
switch文必須の命令 |
|
case |
「~の場合」実行する命令 |
switchブロックの中に書く |
breakとペアで使う |
実行内容を書く |
値が必要 |
何個でも書ける |
最低1つ必要 |
|
break |
「~を打ち切る」実行する命令 |
switchブロックの中に書く |
caseとペアで使う |
何個でも書ける |
最低1つ必要 |
|
default |
「一致なしなら」実行する命令 |
switchブロックの中に書く |
caseの変わりに書く |
breakとペアで使う |
必ず最後に書く |
必要なければ書かなくてもいい |
|
|
|
|
|
 |
|
 |
|
|