Цитата:
Сообщение от
Stitch_MS
Можно и так (кода больше, но резь в глазах уменьшится

)
Цитата:
Сообщение от
pedrozzz
Любители тернарных операторов видят это, наверное, так

Цитата:
Сообщение от
Bergman
По-моему самое простое это:
Не, ребят.
1.
Вы занимаетесь внешним видом, а не сутью.
В ваших примерах (как и в изначальном) нахождение остатка от деления вычисляется несколько раз (до 4 вместо необходмых 2 вычислений).
Представьте, что в реальной жизни это будет не нахождение остатка от деления, а вычисление остатка на некую дату на некоем складе и отдельно на складе пополнения. Вы и там тоже будете запускать процедуру расчета остатков лишние разы?
2.
Чем плох if else if... тем что выражение внутри if вычисляется несколько раз.
условие внутри switch всегда вычисляется только один раз. Именно для этого (ну, кроме формы записи) и вводился switch в процедурные языки.
если в switch условие вычисляется один раз, а в case константы... то можно добиться существенной оптимизации. А не только внешнего вида.
в исходном примере суть switch вывернута наизнанку - условие константа, а в case - выражения (вдобавок с избыточным количеством).
Возврат к if else if... это возврат.
примерно так.
удивительно, что об этом приходится писать.