Энциклопедия Turbo Pascal. Главы 9-11 Страница 28. Предложение Case против цепочки if/then/else
|
Страница 28 из 39
Предложение 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.
|