![]() |
Полная конструкция оператора switch - переключателя, предпологает наличие переменной, в зависимости от значений которой, ей сопоставляется исчерпывающий набор правил. В этом его суть - дает унифицированный, но часто избыточный код.
Полная конструкция if - условный оператор, служит для построения ветвящихся логических структур, где условия ветвления алгоритма могут иметь более гибкий характер. Такие ветвления более характерны для линейного программирования. |
Я бы сказал так)
Разница между if, ? и switch/case в том как вы ими пользуетесь) А по сути это одно и то же. Эффективность работы зависит больше от рационально построенного условия чем от того, какой из вариантов для анализа вы выберете. |
Предположим, нужно проверить переменную - если она вне диапозона, то присвоить ей новое значение и продолжить с ним. - Криво как то писать свич для одного условия.
|
godknowsiamgood, начнём с того, что сишные компиляторы самые умные в мире. лучше их никто код не оптимизирует. то что Вам где-то написали в открытую, что один кусочек во что-то переделывается, это ещё ничего не значит. на самом деле там переделывается всё и вся. одни тэмплэйты и и таблицы виртуальных методов чего стоят. от оригинального кода там и места живого не остаётся. из-за этого дебажить сишный код может только очень упорный человек, или очень талантливый. в болие-менее сложном проекте, ошибки из-за многоуровневой системы компиляции просто так не понять. на пример, описываете Вы метод add, а в ошибке видите что-то типа My_foo_ASD_namespace_Point_add_My_foo_ASD_namespace_PolatPoint. человек не понимающий всю цепочку работы компилятора, фиг поймёт, что это автосгенерированное имя основанное на куче других автосгенерированных имён, что бы создать уникальность, зато мы имеем темплейты. парой строчек можем описать неизвестное множество сущностей, которые будут создаваться и проверяться не в рантайме (как в джаве или АС3), а на этапе компиляции, и про то что они будут реально типизированы, а не мнимо, я вообще молчу. оптимизация уровня inline-методов, в сях достигла совершенства :) компиляторы начали сами считать какой метод сделать inline. и и даже если Вы сами его таковым не пометите, компилятор может оказаться умнее. и т.д. и т.п. в общем ставить в пример компиляторы си, не стоит. слишком разных размеров ягодки. в такие таблицы вобще не только кэйсы переделываются и не всегда.
|
Цитата:
|
Psycho Tiger, есть сильные сомнения, что свич в таких случаях сработает быстрее, а главное что программист вообще поймет логику работы своего алгоритма. Я к примеру, если вижу свич, то первая мысль - может еще чего в него дописать - подключить, а одиночный иф - видится вроде предохранителя на проводе. (пишу глядя на сетевой фильтр).
|
Построение ранга для запросов
Код AS3:
Код AS3:
Тот же код из первой строчки. Если диапазон большой скажем миллиард значений, то весь миллиард шагов делать проверку того что это первый фрагмент не стоит. Либо первый элемент(без запятой) добавить отдельно, либо просто сложить все значения а первую запятую удалить пост действием. Тем самым вы исключите 1 млрд проверок и замените их на конкатенацию. |
| Часовой пояс GMT +4, время: 22:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.