switch文とは
Switch文は、「もしこうなら、これをしよう」というように、条件に応じて異なる命令を実行するための特別な方法で、
特定の値に基づいて実行するコードブロックを選択する制御構文で、複数の条件を持つ場合に、複数のif-else文を使用する代わりに使うとコードが見やすくなります。
例えば、あなたが好きなアイスクリームを選ぶとします。以下のアイスクリームの番号と味があるとします。
1.チョコレート
2.バニラ
3.ストロベリー
4.ミント
あなたが番号を選ぶと、その番号に応じてアイスクリームの味が決まります。これが「switch」文の考え方です。
switch文の構文
サンプルコードで説明
import java.util.Scanner;
public class IceCreamSwitch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // スキャナーを作成して、ユーザー入力を受け取ります
System.out.println("アイスクリームの番号を選んでください:");
System.out.println("1: チョコレート");
System.out.println("2: バニラ");
System.out.println("3: ストロベリー");
System.out.println("4: ミント");
int iceCreamNumber = scanner.nextInt(); // ユーザーが入力した番号を取得します
String iceCreamFlavor;
switch (iceCreamNumber) {
case 1:
iceCreamFlavor = "チョコレート";
break;
case 2:
iceCreamFlavor = "バニラ";
break;
case 3:
iceCreamFlavor = "ストロベリー";
break;
case 4:
iceCreamFlavor = "ミント";
break;
default:
iceCreamFlavor = "無効な番号";
break;
}
System.out.println("あなたが選んだアイスクリームは: " + iceCreamFlavor);
}
}
出力例
アイスクリームの番号を選んでください: 1: チョコレート 2: バニラ 3: ストロベリー 4: ミント 2 あなたが選んだアイスクリームは: バニラ
複数の処理を実行したいとき
breakを記述しなければ、複数の処理を実行することも可能ですが、
ここでは、複数の選択肢を扱うために、配列やリストを使ってユーザーが複数の選択肢を入力し、それぞれの選択肢に対してswitch文を実行する方法を記載します。
import java.util.Scanner;
public class MultiSelectIceCream {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("アイスクリームの番号を複数選んでください(スペースで区切って入力):");
System.out.println("1: チョコレート");
System.out.println("2: バニラ");
System.out.println("3: ストロベリー");
System.out.println("4: ミント");
// ユーザーの入力を一行として取得
String input = scanner.nextLine();
// 入力をスペースで分割して配列にする
String[] selectedNumbers = input.split(" ");
// 各番号に対して処理を行う
for (String numberStr : selectedNumbers) {
int iceCreamNumber;
try {
iceCreamNumber = Integer.parseInt(numberStr); // 文字列を整数に変換
} catch (NumberFormatException e) {
System.out.println("無効な入力: " + numberStr);
continue;
}
String iceCreamFlavor;
switch (iceCreamNumber) {
case 1:
iceCreamFlavor = "チョコレート";
break;
case 2:
iceCreamFlavor = "バニラ";
break;
case 3:
iceCreamFlavor = "ストロベリー";
break;
case 4:
iceCreamFlavor = "ミント";
break;
default:
iceCreamFlavor = "無効な番号";
break;
}
System.out.println("あなたが選んだアイスクリームは: " + iceCreamFlavor);
}
}
}
出力例
アイスクリームの番号を複数選んでください(スペースで区切って入力): 1: チョコレート 2: バニラ 3: ストロベリー 4: ミント 2 4 あなたが選んだアイスクリームは: バニラ あなたが選んだアイスクリームは: ミント
コメント