
分岐「switch文」
前回、if文を学習しました。
次はswitch文です。
switch文とは
if文は条件を1つずつ判定していったのに対して
switch文は一発で条件を判定するものです。
式があって、値が1なら(case)【処理1】
値が2なら(case)【処理2】
1でも2でもないなら(default)【処理3】
みたいなイメージです。
ソースコードのイメージ
switch (式){
case【値1】:
【処理1】
break;
case【値2】:
【処理2】
break;
default:
【処理3】
}
:と;がめっちゃ紛らわしいです。。。
case【値】とdefaultのあとは「:」
breakのあとは「;」です。
switch (式)の「式」について
if文はboolean型が入りました。
switch文では、この(式)には
byte型/short型/int型(整数)・char型(文字)が入ります。
例題のソースコードで確認
class EnterFee {
public static void main(String[] args) {
int num = Integer.parseInt(args[0]);
①switch(num) {
②case 1:
System.out.println("入園料金:10,000円");
break;
case 2:
System.out.println("入園料金:7,000円");
break;
case 3:
System.out.println("入園料金:5,000円");
break;
③default:
System.out.println("1:一般,2:高校生,中学生,3:小学生以下");
}
}
}
①switch(num) {
割愛してメモ書きしていきます。
numの数値によって処理を多分岐させているのが
このswitch文になるという訳です。
②case 1:
これ以降が分岐後の処理になります。
「1」と入力されたら
System.out.println("入園料金:10,000円");の処理がされます。
「2」と入力されたら
System.out.println("入園料金:7,000円");の処理がされます。
「3」と入力されたら
System.out.println("入園料金:5,000円");の処理がされます。
③default:
1.2.3、これ以外が入力された場合
System.out.println("1:一般,2:高校生,中学生,3:小学生以下");
この処理がされます。
case以外の値は「default」で分類します。
もしbreakを一部消したらどうなる?
class EnterFee {
public static void main(String[] args) {
int num = Integer.parseInt(args[0]);
switch(num) {
case 1:
System.out.println("入園料金:10,000円");
①break;
case 2:
System.out.println("入園料金:7,000円");
②break;
case 3:
System.out.println("入園料金:5,000円");
③break;
default:
System.out.println("1:一般,2:高校生,中学生,3:小学生以下");
}
}
}
このソースコードにてbreakは3つありますので
確認していきます。
①と②のbreakを消してみる
「1」と入力すると…
入園料金:10,000円
入園料金:7,000円
入園料金:5,000円
と、表示されます。
※スタートが「1」から始まり
breakがあるところで止まる。
では「2」と入力すると…
入園料金:7,000円
入園料金:5,000円
※スタートが「2」の箇所から始まる為
ifとswitchの使い分け、状況に応じて使い分けていきましょう。
頭の柔らかさが大切ですね( ^ω^)・・・