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

bookswitch-case文

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

複数の異なる条件の処理

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

例えば:

Main.java

Main.java

copy
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

copy
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

copy
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

copy
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.  6

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 2.  6
some-alt