多くの場合、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ステートメントを使用することには本当に利点がありますか?