見出し画像

分岐「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の使い分け、状況に応じて使い分けていきましょう。
頭の柔らかさが大切ですね( ^ω^)・・・

いいなと思ったら応援しよう!