Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.02.2009, 00:32
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 31  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Полная конструкция оператора switch - переключателя, предпологает наличие переменной, в зависимости от значений которой, ей сопоставляется исчерпывающий набор правил. В этом его суть - дает унифицированный, но часто избыточный код.
Полная конструкция if - условный оператор, служит для построения ветвящихся логических структур, где условия ветвления алгоритма могут иметь более гибкий характер. Такие ветвления более характерны для линейного программирования.

Старый 23.02.2009, 09:52
SunShadow вне форума Посмотреть профиль Отправить личное сообщение для SunShadow Найти все сообщения от SunShadow
  № 32  
Ответить с цитированием
SunShadow
 
Аватар для SunShadow

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Я бы сказал так)
Разница между if, ? и switch/case в том как вы ими пользуетесь) А по сути это одно и то же. Эффективность работы зависит больше от рационально построенного условия чем от того, какой из вариантов для анализа вы выберете.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Старый 23.02.2009, 13:00
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 33  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Предположим, нужно проверить переменную - если она вне диапозона, то присвоить ей новое значение и продолжить с ним. - Криво как то писать свич для одного условия.

Старый 23.02.2009, 13:03
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 34  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
godknowsiamgood, начнём с того, что сишные компиляторы самые умные в мире. лучше их никто код не оптимизирует. то что Вам где-то написали в открытую, что один кусочек во что-то переделывается, это ещё ничего не значит. на самом деле там переделывается всё и вся. одни тэмплэйты и и таблицы виртуальных методов чего стоят. от оригинального кода там и места живого не остаётся. из-за этого дебажить сишный код может только очень упорный человек, или очень талантливый. в болие-менее сложном проекте, ошибки из-за многоуровневой системы компиляции просто так не понять. на пример, описываете Вы метод add, а в ошибке видите что-то типа My_foo_ASD_namespace_Point_add_My_foo_ASD_namespace_PolatPoint. человек не понимающий всю цепочку работы компилятора, фиг поймёт, что это автосгенерированное имя основанное на куче других автосгенерированных имён, что бы создать уникальность, зато мы имеем темплейты. парой строчек можем описать неизвестное множество сущностей, которые будут создаваться и проверяться не в рантайме (как в джаве или АС3), а на этапе компиляции, и про то что они будут реально типизированы, а не мнимо, я вообще молчу. оптимизация уровня inline-методов, в сях достигла совершенства компиляторы начали сами считать какой метод сделать inline. и и даже если Вы сами его таковым не пометите, компилятор может оказаться умнее. и т.д. и т.п. в общем ставить в пример компиляторы си, не стоит. слишком разных размеров ягодки. в такие таблицы вобще не только кэйсы переделываются и не всегда.

Старый 23.02.2009, 13:04
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 35  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Сообщение от aksios Посмотреть сообщение
Предположим, нужно проверить переменную - если она вне диапозона, то присвоить ей новое значение и продолжить с ним. - Криво как то писать свич для одного условия.
Но если каждая милисекунда процессорного время на счету - то во время оптимизации можно и в switch это переписать, ради чего и был стартанут этот топик.

Старый 23.02.2009, 13:16
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 36  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Psycho Tiger, есть сильные сомнения, что свич в таких случаях сработает быстрее, а главное что программист вообще поймет логику работы своего алгоритма. Я к примеру, если вижу свич, то первая мысль - может еще чего в него дописать - подключить, а одиночный иф - видится вроде предохранителя на проводе. (пишу глядя на сетевой фильтр).

Старый 23.02.2009, 19:53
SunShadow вне форума Посмотреть профиль Отправить личное сообщение для SunShadow Найти все сообщения от SunShadow
  № 37  
Ответить с цитированием
SunShadow
 
Аватар для SunShadow

Регистрация: Apr 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 355
Построение ранга для запросов
Код AS3:
str = str ? ','+str:str;
Сложные условия
Код AS3:
if (b>c || a<d){
   trace('Победа');
}
ну а свитч это перебор вариантов. Если планируется что в будущем узел с условиями будет расширяться то я предпочитаю использовать свитч, его модифицировать проще чем клубок из ифов. А по поводу того что производительней это боюсь вам даже разработчики не скажут. В каждом отдельном случае эффективность будет определяться множеством условий. Если вам нужна оптимизация ищите в тех местах где этого действительно можно добиться.
Тот же код из первой строчки. Если диапазон большой скажем миллиард значений, то весь миллиард шагов делать проверку того что это первый фрагмент не стоит. Либо первый элемент(без запятой) добавить отдельно, либо просто сложить все значения а первую запятую удалить пост действием. Тем самым вы исключите 1 млрд проверок и замените их на конкатенацию.
__________________
Хочу IQ как ICQ, ну или хотя бы ICQ как IQ

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:12.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.