//Sample08_032.java class Sample08_032{ static String method_sw(int i){ String str1; switch(i){ case 0:int x = 666; str1 = x + "!";break; case 1:int y = 777; str1 = y + "!";break; case 2:int z = 888; str1 = z + "!";break; default: str1 = "default!"; }//スコープはここまで。 return str1; } public static void main(String[] args){ String str = method_sw(1); System.out.println(str); } }
>javac Sample08_032.java >java Sample08_032 777!
//Sample08_033.java class Sample08_033{ static String method_sw(int i){ String str1; switch(i){case 0: int x = 666; str1 = x + "!"; break; case 1: x = 777; str1 = x + "!"; break; case 2:. x = 888; str1 = x + "!"; break; default: x = 999; str1 = "default!" + x;}//スコープはここまで。 return str1; } public static void main(String[] args){ String str = method_sw(3); System.out.println(str); } }
>javac Sample08_033.java >java Sample08_033 default!999
//Sample08_033NG.java class Sample08_033NG{ static String method_sw(int i){ String str1; switch(i){case 0: int x = 666; str1 = x + "!"; break; case 1: //初期化してない str1 = x + "!"; break; case 2: //初期化してない str1 = x + "!"; break; default: //初期化してない str1 = "default!" + x;}//スコープはここまで。 return str1; } public static void main(String[] args){ String str = method_sw(2); System.out.println(str); } }
>javac Sample08_033NG.java
Sample08_033NG.java:11:
エラー: 変数xは初期化されていない可能性があります
str1 = x + "!";
^
Sample08_033NG.java:14:
エラー: 変数xは初期化されていない可能性があります
str1 = x + "!";
^
Sample08_033NG.java:17:
エラー: 変数xは初期化されていない可能性があります
str1 = "default!" + x;
^
エラー3個