Почему для событий Android операторы switch более распространены, чем цепочки if-else?

При разработке для Android оператор switch более эффективен, чем цепочка if-else? Оператор switch требует большего количества строк кода, но, судя по неофициальным данным, более часто используется в приложениях Android.

Приведенные ниже примеры иллюстрируют ту же конструкцию программирования с оператором case и цепочкой if-else. Для оператора switch требуется 10 строк, а для цепочки 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();
   }
}

Цепочка If-else

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? Предлагают ли операторы switch более высокую производительность по сравнению с цепочками if-else?

6
задан ahsteele 7 March 2015 в 18:49
поделиться