各ケースで同じ名前の変数を作成できないのはなぜですか。たとえば、以下のコードから、すでに存在するcase 3と文句を言うでしょうが、なぜそうなるのでしょうか? 呼ばれたことはありませんし、これからも呼ばれることはありません。String nameCase 1
から定義を抽出したくありませんswitch-case。では、なぜifステートメントを使用して、それぞれのケースで同じ名前を定義できるのに、switch-caseそうしないのでしょうか?
以下は、switch ケースを使用した単純な Java コードです。
int type = 3;
switch (type) {
case 1:
String name = (String) respone.get("name");
user.setName(name);
break;
case 2:
String surname = (String) respone.get("surname");
user.setSurname(surname);
break;
case 3:
String name = (String) respone.get("name");
user.clearName(name);
break;
default:
...
}