switch文とswitch式
解決したいこと
switch文とswitch式をどう区別するのか教えてください
該当するソースコード
public class Sample{
public static void main(String[] args){
int a = 2;
switch(a){
case 1 -> System.out.println("A");
case 2 -> System.out.println("B");
case 3 -> System.out.println("C");
default -> System.out.println("D");
};
}
}
疑問点
上のコードではswitch式として記述されているらしいのですが、switch文なのでは?と思っています。
理由
・switch式は何らかの値を返すために使う(変数の代入やSystem.out.println(switch(a))など)が、上のコードではそのような使い方はしていない。
・14行目のセミコロンはswitch式では必須だが、switch文には使わない(?)
・defaultはswitch式では必須だが、switch文でも使えるため判断基準にならない
・アロー演算子はswitch文でもswitch式でも使えるため判断基準にはならない。
以上のことから、switch式で「Bと表示される」が正解の問題ですが、switch文なので、「14行目でコンパイルエラー」が正しいと思うのですが、私の考えのどこが間違っていますでしょうか。
0 likes