Энциклопедия Turbo Pascal. Главы 9-11 - Предложение 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.