Показать сообщение отдельно
Старый 08.12.2012, 16:23   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Stitch_MS Посмотреть сообщение
Можно и так (кода больше, но резь в глазах уменьшится )
Цитата:
Сообщение от pedrozzz Посмотреть сообщение
Любители тернарных операторов видят это, наверное, так
Цитата:
Сообщение от Bergman Посмотреть сообщение
По-моему самое простое это:
Не, ребят.
1.
Вы занимаетесь внешним видом, а не сутью.
В ваших примерах (как и в изначальном) нахождение остатка от деления вычисляется несколько раз (до 4 вместо необходмых 2 вычислений).

Представьте, что в реальной жизни это будет не нахождение остатка от деления, а вычисление остатка на некую дату на некоем складе и отдельно на складе пополнения. Вы и там тоже будете запускать процедуру расчета остатков лишние разы?

2.
Чем плох if else if... тем что выражение внутри if вычисляется несколько раз.
условие внутри switch всегда вычисляется только один раз. Именно для этого (ну, кроме формы записи) и вводился switch в процедурные языки.
если в switch условие вычисляется один раз, а в case константы... то можно добиться существенной оптимизации. А не только внешнего вида.

в исходном примере суть switch вывернута наизнанку - условие константа, а в case - выражения (вдобавок с избыточным количеством).

Возврат к if else if... это возврат.

примерно так.
удивительно, что об этом приходится писать.