Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ switch-case文 | 基本型と演算
Java基礎

switch-case文

メニューを表示するにはスワイプしてください

複数の異なる条件の処理

多くの条件を判定する場合、複数の if-else チェーンを使うのは便利とは言えません。

例えば:

Main.java

Main.java

12345678910111213141516171819
package 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

Main.java

123456789
switch (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

Main.java

123456789101112131415161718192021222324
package 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

Main.java

1234567891011121314151617181920
package 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キーワードが必要なのですか?

question mark

コンソールに出力される内容は何ですか?

正しい答えを選んでください

question mark

なぜbreakキーワードが必要なのですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  7

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  7
some-alt