【プログラミング】Switch文ってどういうもの?

プログラミングをする上で、条件分岐を組み込むことは少なくないと思います。

条件分岐には、if文がありますが、いくつも連なるとソースコードの可視性損なってくるでしょう。

今回は、そんな時に役立つ構文:switch文について、まとめます。

スポンサーリンク

switch文とは

一般的にプログラミングの構文の1つである条件分岐には、if文の他にもswitch文が存在します。

swtich文では、1つの条件式から得られる結果により、処理を分けるような構文です。

この時、得られる結果は複数のパターンが存在する場合に有効的なものです。

基本形

基本的な構文は、以下です。

コードサンプル:

switch (式){

case “得られる結果「A」”:

// 条件式の結果が「A」となる場合に実行する処理を記載

break;

case “得られる結果「B」”:

// 条件式の結果が「B」となる場合に実行する処理を記載

break;



}

なお、基本的にはcaseの処理を記載した最後は「break;」を必ず入れるようにしましょう。

Javaで記載されたswitch文のコードの例を以下に示します。

コードサンプル:

public static void main(String[] args) throws Exception {

int num = 10;

switch(num % 2){

case 0:

System.out.println(“偶数です”);

break;

case 1:

System.out.println(“奇数です”);

break;

}

}

実行結果:

偶数です

上記では、switchの「式」に数式を入れましたが、「int型」「String型」などが使用できます。逆に言うと、小数となる型である「float型」「double型」や「String型」を除く参照型は指定できません。

また、caseの「得られる結果」には、変数を用いることができないので、注意が必要です。

フォールスルー

先述の基本形で、「基本的には「break;」を必ず入れるようにしましょう。」と記載しましたが、意図して入れない場合もあります。

「break」を入れないで記述する方法を「フォールスルー」と言います。

では、入れなかった場合は、どう動くかを見ていきます。

Javaで記載されたswitch文のコードの例を以下に示します。

コードサンプル:

public class Sample {

public static void main(String[] args) throws Exception {

int num = 6;

switch(num / 2){

case 0:

case 2:

System.out.println(“商は偶数です”);

break;

case 1:

case 3:

System.out.println(“商は奇数です”);

break;

}

}

}

実行結果:

商は奇数です

スポンサーリンク

ただし、安易にフォールスルーを利用するのは、オススメしません。

例えば以下のような場合は、意図せぬ出力もされてしまうためです。そのため、「基本的には「break;」を必ず入れるようにしましょう。」と記載しました。

コードサンプル:

public class Sample {

public static void main(String[] args) throws Exception {

int num = 4;

switch(num % 2){

case 0:

System.out.println(“商は偶数です”);

case 1:

System.out.println(“商は奇数です”);

}

}

}

実行結果:

商は偶数です
商は奇数です

caseで指定した内容に当てはまらない場合

いずれかのcaseにも当てはまらない結果を得た場合は、どうなるのでしょうか?

処理が記載していない場合は、何も処理がされずに通過してしまいます。エラーにもなりません。

このように、いずれのcaseにも当てはまらない時に、実行させたいことも出てくることでしょう。

そのような場合の処理を記載するには、「default」を使用します。

Javaで記載されたswitch文のコードの例を以下に示します。

コードサンプル:

public class Sample {

public static void main(String[] args) throws Exception {

int num = 5;

switch(num % 3){

case 0:

System.out.println(“あまりは「0」です”);

case 1:

System.out.println(“あまりは「1」です”);

default:

System.out.println(“あまりは「0」でも「1」でもありません”);

}

}

}

実行結果:

あまりは「0」でも「1」でもありません

まとめ

今回は、条件分岐の1つであるswitch文について記載しました。

1つの条件文から複数の結果が得られる際の場合分けには、非常に適した構文です。

ぜひ、参考にしてみて下さい。

スポンサーリンク