Энциклопедия Turbo Pascal. Главы 9-11 - Предложение Case против цепочки if/then/else
ОГЛАВЛЕНИЕ
Страница 29 из 40
Предложение 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.