6
Android用に開発するときは、if-elseチェーンよりも効率的なswitch文がありますか? switchステートメントはより多くのコード行を必要としますが、事例の証拠を見ると、Androidアプリケーションでより一般的に使用されるようです。Androidイベントの場合if-elseチェーンよりもswitch文が一般的なのはなぜですか?
以下の例は、case文とif-else chainを使用した同じプログラミング構造を示しています。チェーン
public void onClickWithIf(View v) {
int id = v.getId();
if(id == R.id.buttonA)
buttonA();
else if (id == R.id.buttonB)
buttonB();
else if (id == R.id.buttonC)
buttonC();
}
がなぜより一般的で切り替えたい場合、他のif-elseチェーンは7
case文
public void onClickWithSwitch(View v) {
switch(v.getId()) {
case R.id.buttonA:
buttonA();
break;
case R.id.buttonB:
buttonB();
break;
case R.id.buttonC:
buttonC();
}
}
を必要としながら、switch文は10行が必要ですif-elseチェーン? switch文は、if-elseチェーンと比較してより良いパフォーマンスを提供しますか?
あなたは間違った質問をしています。そして、どちらも多くの場合に間違った解決策です。 – delnan
タイトルを編集しました。しかし、私はまだそれがあなたが話していたものかどうかは分かりません。 @delnan –
一般的にスイッチはifより効率的です。また、すべての比較が同じ 'id'に対して行われていることを明確にすることができます。コード行の数は効率の悪い指標です。 (あなたはプログラム全体を1行に入れることはできません;)) –