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つを試してチャットを始めてください