종종 switch 문에 대해 들었을 때 긴 if ... else 체인을 대체하는 방법으로 사용되었습니다. 그러나 switch 문을 사용하면 더 많은 코드를 작성하여 if ... else로 작성하는 것 같습니다. 또한 모든 호출에 대한 모든 변수를 동일한 범위로 유지하는 것과 같은 다른 문제가 있습니다 .
다음은 일반적으로 쓰는 흐름을 나타내는 코드입니다 ( diam 덕분에 )
String comment; // The generated insult.
int which = (int)(Math.random() * 3); // Result is 0, 1, or 2.
if (which == 0) {
comment = "You look so much better than usual.";
} else if (which == 1) {
comment = "Your work is up to its usual standards.";
} else if (which == 2) {
comment = "You're quite competent for so little experience.";
} else {
comment = "Oops -- something is wrong with this code.";
}
그런 다음 그들은 이것을 이것을 다음과 같이 바꾸길 원합니다.
String comment; // The generated insult.
int which = (int)(Math.random() * 3); // Result is 0, 1, or 2.
switch (which) {
case 0:
comment = "You look so much better than usual.";
break;
case 1:
comment = "Your work is up to its usual standards.";
break;
case 2:
comment = "You're quite competent for so little experience.";
break;
default:
comment = "Oops -- something is wrong with this code.";
}
훨씬 더 어색한 구문에서 훨씬 더 많은 코드처럼 보입니다. 그러나 switch 문을 사용하면 실제로 이점이 있습니까?