java switch case statement with programming examples
簡単な例を使用して、Java Switchステートメント、ネストされたスイッチ、その他のバリエーションと使用法について学習します。
このチュートリアルでは、JavaSwitchステートメントについて説明します。ここでは、プログラミング例とその説明とともに、Switchステートメントに関連するすべての概念について説明します。
トピックをよりよく理解できる十分な例が提供され、Switchステートメントを使用する必要があるときはいつでもプログラムを作成できるようになります。
Switchステートメントに関連して尋ねられるトレンドの質問に気付くように、よくある質問のいくつかが含まれています。
学習内容:
プリムとクラスカルアルゴリズムと例
JavaSwitchステートメント
このチュートリアルでは、JavaSwitchステートメントの次のバリエーションについて説明します。
- Switchステートメント
- ネストされたSwitchステートメント(内部および外部スイッチ)
JavaのSwitchステートメントは、式または条件の値に基づいて、さまざまなケースまたはパーツでコードを実行する方法を提供する分岐ステートメントまたは意思決定ステートメントです。多くの場合、Java Switchステートメントは、Javaif-elseステートメントで使用できるさまざまなオプションよりも優れた代替手段を提供します。
構文:
switch (expression){ case 1: //statement of case 1 break; case 2: //statement of case 2 break; case 3: //statement of case 3 break; . . . case N: //statement of case N break; default; //default statement }
Switchステートメントのルール
以下に、Switchステートメントの重要なルールを示します。
- ケースまたはケース値を重複させることはできません。
- Switch caseの値は、Switchcase変数と同じデータ型である必要があります。ために 例えば。 –「x」が「switch(x)」の整数型である場合、すべてのSwitchケースは整数型である必要があります。
- ザ・ Javaブレークステートメント ケース内の実行可能ファイルのシーケンスを終了するために使用できます(オプション)。
- デフォルトのステートメントもオプションです。通常、Switchステートメントの最後にあります。 SwitchケースのいずれもSwitch変数の値と一致しない場合、デフォルトのステートメントが実行されます。
- Switchケースの値は、変数ではなく定数でなければなりません。
Forループを使用したSwitchケース
以下に示すのは、Java Switchステートメントがどのように機能するか、またはプログラムで使用できるかを示したサンプルプログラムです。まず、forループ内の「i」の値を初期化し、条件を指定しました。
次に、2つのケースと1つのデフォルトを使用してSwitchステートメントを実装しました。デフォルトのステートメントは、「i<5”. In this case, it will execute 2 times for “i=3” and “i=4”.
public class example { public static void main(String() args) { /* * Switch statement starts here. Added three cases and * one default statement. The default statement will * keep on executing until i<5. In this case, it will * execute 2 times for i=3 and i=4. */ for(int i=0; i<5; i++) { switch(i){ case 0: System.out.println('i value is 0'); break; case 1: System.out.println('i value is 1'); break; case 2: System.out.println('i value is 2'); break; default: System.out.println('i value is greater than 2 and less than 5'); } } } }
出力:
休憩はオプションです
Switch case Javaでは、breakステートメントはオプションです。ブレークを取り除いても、プログラムの制御は次のケースに移ります。
次の例を考えてみましょう。
public class example { public static void main(String() args) { /* * Switch statement starts here. Added 10 cases and * one default statement. Execution will flow through * each of these cases case 0 to case 4 and case 5 to * case 9 until it finds a break statement. */ for(int i=0; i<=10; i++) { switch(i){ case 0: case 1: case 2: case 3: case 4: System.out.println('i value is less than 5'); break; case 5: case 6: case 7: case 8: case 9: System.out.println('i value is less than 10'); break; default: System.out.println('Default statement'); } } } }
出力
ネストされたSwitchステートメント
これには、内側と外側のスイッチの概念が含まれます。外側のスイッチのステートメントの一部として、内側のスイッチを使用できます。このタイプのSwitchステートメントはNestedSwitchステートメントと呼ばれ、Switch(Outer)内のSwitch(Inner)はNestedSwitchと呼ばれます。
構文:
switch (count){ case 1: switch (target){ //nested switch statement case 0: System.out.println(“target is 0”); break; case 1: System.out.println(“target is 1”); break; } break; case 2: //… }
ネストされたスイッチを使用して「a」と「b」を見つける
以下の例では、Scannerクラスを使用して、コンソールから「a」と「b」を入力しています。次に、内側と外側のスイッチを使用して、「a」と「b」の両方の値に異なるケースを配置しました。
コントロールはこれらの内部および外部のSwitchステートメントを通過し、入力された値が一致する場合、値を出力します。それ以外の場合は、デフォルトのステートメントが出力されます。
import java.util.Scanner; public class example { public static void main(String() args) { int a,b; System.out.println('Enter a and b'); Scanner in = new Scanner(System.in); a = in.nextInt(); b = in.nextInt(); // Outer Switch starts here switch (a) { // If a = 1 case 1: // Inner Switch starts here switch (b) { // for condition b = 1 case 1: System.out.println('b is 1'); break; // for condition b = 2 case 2: System.out.println('b is 2'); break; // for condition b = 3 case 3: System.out.println('b is 3'); break; } break; // for condition a = 2 case 2: System.out.println('a is 2'); break; // for condition a == 3 case 3: System.out.println('a is 3'); break; default: System.out.println('default statement here'); break; } } }
出力
文字列を使用したSwitchステートメント
JDK 7.0以降では、Switch式または条件でStringオブジェクトを使用できます。
以下に示すのは、Switchステートメントで文字列を使用した例です。整数と同じように、Switchステートメントで文字列を使用できます。
import java.util.Scanner; public class example { public static void main(String() args) { String mobile = 'iPhone'; switch (mobile) { case 'samsung': System.out.println('Buy a Samsung phone'); break; case 'iPhone': System.out.println('Buy an iPhone'); break; case 'Motorola': System.out.println('Buy a Motorola phone'); } } }
出力
Switchステートメントのラッパー
JDK 7.0以降では、SwitchステートメントはWrapperクラスでも機能します。ここでは、SwitchステートメントでJavaラッパーをデモンストレーションします。
以下の例では、プリミティブ型intの値をオブジェクトにラップするIntegerクラスを使用しています。このクラスを使用して、ラッパー変数「x」を値3で初期化しました。
(Switchステートメント内の)Wrapper変数を使用して、3つの異なるケースと1つのデフォルトケースを定義しました。 「x」の値と一致するケースがどれであっても、その特定のケースが実行されます。
public class example { public static void main(String() args) { // Initializing a Wrapper variable Integer x = 3; // Switch statement with Wrapper variable x switch (x) { case 1: System.out.println('Value of x = 1'); break; case 2: System.out.println('Value of x = 2'); break; case 3: System.out.println('Value of x = 3'); break; // Default case statement default: System.out.println('Value of x is undefined'); } } }
出力
SwitchステートメントのJava列挙型
JDK 7.0以降では、SwitchステートメントはJava列挙型で適切に機能します。このセクションでは、switchステートメントでJava列挙型を示します。
ここでは、基本的に靴のブランドである4つの定数を持つ靴と呼ばれる列挙型を作成しました。次に、列挙子を参照変数a1に格納しました。
その参照変数a1を使用して、4つの異なるケースでSwitchステートメントを初期化しました。どちらの場合も参照変数値と一致し、その特定のケースが実行されます。
/* * created an enumeration called shoes * with four enumerators. */ enum shoes { Nike, Adidas, Puma, Reebok; } public class example { public static void main(String() args) { /* * stored enumerator in reference variable a1 for constant = Adidas */ shoes a1 = shoes.Adidas; /* * Started Switch Statement and if the element matches with a1 then it * will print the statement specified in the case */ switch (a1) { // does not match case Nike: System.out.println('Nike - Just do it'); break; // matches case Adidas: System.out.println('Adidas - Impossible is nothing'); break; // does not match case Puma: System.out.println('Puma - Forever Faster'); break; // does not match case Reebok: System.out.println('Reebok - I Am What I Am'); break; } } }
出力
よくある質問
Q#1)Java Switchステートメントとは何ですか?
回答: JavaのSwitchステートメントは、さまざまなケースでコードを実行する方法を提供するブランチステートメントまたは意思決定ステートメント(Java if-elseステートメントと同様)です。これらのケースは、何らかの表現または条件に基づいています。
ほとんどの場合、Java Switchステートメントは、Javaif-elseステートメントよりも意思決定の優れた代替手段であることが証明されています。
Q#2)JavaでSwitchステートメントをどのように記述しますか?
回答: 以下に、Switchステートメントを使用したサンプルプログラムを示します。ここでは、値が4のbrandという整数を取得し、この整数をさまざまなケースのSwitchステートメントで使用しました。
ブランドの整数値がケースと一致すると、その特定のケースのステートメントが印刷されます。
import java.util.Scanner; public class example { public static void main(String() args) { int brand = 4; String name; // Switch statement starts here switch(brand){ case 1: name = 'Nike'; break; case 2: name = 'Dolce & Gabbana'; break; case 3: name = 'Prada'; break; case 4: name = 'Louis Vuitton'; break; default: name = 'Invalid name'; break; } System.out.println('The brand name is: ' + name); } }
出力
Q#3)SwitchStatementの例を挙げてください。
回答: このチュートリアルには、Switchステートメントの例がたくさんあります。 Switch withIntegerまたはSwitchwith Stringなど、考えられるすべての例を示しました。
このチュートリアルの冒頭に示した例を参照すると、Switchステートメントの基本と、それがループでどのように使用されるかを理解できます。 (「forループを使用したSwitchケース」セクションを参照してください)
Q#4)switchステートメントにデフォルトのケースが必要ですか?
回答: いいえ、Switchステートメントを処理するときは常にデフォルトのケースを使用する必要はありません。
たとえば、デフォルトのケースを使用していない以下の例を見ると、デフォルトのケースを使用していなくても、一致するケースが見つかる限り、プログラムは完全に実行されます。
import java.util.Scanner; public class example { public static void main(String() args) { String author = 'Saket'; switch (author) { case 'John': System.out.println('John is the author'); break; case 'Michael': System.out.println('Michael is the author'); break; case 'Rebecca': System.out.println('Rebecca is the author'); break; case 'Saket': System.out.println('Saket is the author'); break; case 'Steve': System.out.println('Steve is the author'); break; } } }
出力
結論
このチュートリアルでは、Java Switchステートメントについて、構文、説明、およびフローチャートとともに説明しました。ネストされたSwitchステートメントであるもう1つのバリエーションについても、内部スイッチと外部スイッチの概念を含む適切な例を使用して詳細に説明します。
Java Switchステートメントに関連するトレンドの質問を知ることができるように、いくつかのよくある質問もここに提供されています。これらの意思決定ステートメントは、条件または式に基づいてコードを分離し、複数のケースをチェックする場合に役立ちます。
=> ここですべてのJavaチュートリアルを確認してください。