Энциклопедия Turbo Pascal. Главы 9-11
Страница 28. Предложение Case против цепочки if/then/else


Предложение Case против цепочки if/then/else

    Следующие фрагменты кодов функционально эквивалентны.  Одна-
ко,  один является более эффективным,  чем другой.  Можете ли  вы
сказать какой?

    case ch of                  if ch='a' then f1(ch)
      'a': f1(ch);          else if ch='b' then f2(ch)
      'b': f2(ch);          else if ch='c' then f3(ch)
      'c': f3(ch);          else if ch='d' then f4(ch)
      'd': f4(ch);
    end;

     Левый фрагмент кода гораздо более  эффективен,  чем  первый,
так  как в общем случае предложение case порождает более компакт-
ный  и  быстрый   объектный   код,   нежели   серия   предложений
if/then/else.
     Цепочка if/then/else важна, так как она позволяет вам выпол-
нить переходы по множеству ветвей с анализом данных различных ти-
пов,  что не может быть сделано с помощью предложения case. Одна-
ко,  если вы используете скалярные данные целые,  действтительные
числа,  символьные  данные  и перечисления,  то следует применять
предложение case.

 
Следующая статья »