2011-01-21 6 views
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チェーンと比較してより良いパフォーマンスを提供しますか?

+2

あなたは間違った質問をしています。そして、どちらも多くの場合に間違った解決策です。 – delnan

+0

タイトルを編集しました。しかし、私はまだそれがあなたが話していたものかどうかは分かりません。 @delnan –

+1

一般的にスイッチはifより効率的です。また、すべての比較が同じ 'id'に対して行われていることを明確にすることができます。コード行の数は効率の悪い指標です。 (あなたはプログラム全体を1行に入れることはできません;)) –

答えて

関連する問題