switch-case文
メニューを表示するにはスワイプしてください
複数の異なる条件の処理
多くの条件を判定する場合、複数の if-else チェーンを使うのは便利とは言えません。
例えば:
Main.java
12345678910111213141516171819package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
このような書き方は、見た目もきれいではなく、プロフェッショナルとも言えません。このような場合に、Java では switch-case 文が用意されています。
switch-case 文
switch-case 文はいくつかの部分から構成されます:
Main.java
123456789switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
上記のコードでは、switchブロックを使用して処理を選択的に実行しています。ここでは、条件とは少し異なる式に依存します。ここには値や式を挿入します。例えば、10 / 2 のように記述します。この場合、上記の式が5になるため、case 5 のブロックが実行されます。
また、ここで条件式を使うこともできます。その場合、式ブロックにブール式を書く必要があり、次のようになります:10 / 2 == 5。そして、下に2つのcaseを書きます:
case true:
case false:
しかし、この構造は通常の if-else とほとんど区別がつきません。
キーワード「break」
このキーワードは、switch-case 文の実行を終了し、その本体から抜けるために使用します。この単語はループでもよく使われますが、これについては次の章で説明します。コードブロックから抜けて実行を停止したい場合にこのキーワードを使用します。
ここでは、上記で作成したコードを switch-case 文を使って改善します。
Main.java
123456789101112131415161718192021222324package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
このコードは、より簡潔で読みやすく、拡張しやすくなっていることが分かります。追加の条件が必要な場合でも、新たに if 文を書く必要はありません。代わりに、switch-case statement に新しい case ブロックを追加するだけで対応できます。
switch-case ブロックの構成図:
ご覧のとおり、ケースの数に制限はありません。それぞれのケースには独自の条件とコードが必要であり、プログラムがそのケースブロックに入ったときに実行されます。
break キーワードを使用することが推奨されます。なぜなら、プログラムはすべてのケースブロックが実行されるまで switch ブロックから抜け出さないためです。どのケースブロックにも入らなかった場合や break キーワードを使用しなかった場合は、default ブロックが実行されます。
以下は break キーワードを使わない別の例です:
Main.java
1234567891011121314151617181920package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
複数の値が受け取られ、これは予想と異なっています。さらに、case 10 および default ブロックからの情報も取得されました。これがまさに各ブロックの後に break キーワードを使用する理由です。こうすることで、プログラムは switch 文から抜けて実行を続けます。
1. コンソールに出力される内容は何ですか?
2. なぜbreakキーワードが必要なのですか?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください