2014-01-22 6 views
-4

иногда я вижу в коде if/else if-blocks вот так - без else-block в конце.if - else if blocks without else

if(..) { 
    .. 
} else if(..) { 
    .. 
} 

На мой взгляд, это не хороший стиль, потому что else-block семантически относится к if или if/else-if-blocks!

В противном случае, в случае использования перечислений, например, вы должны явно прокомментировать else-block, чтобы прояснить, когда он будет выполнен. Кроме того, вы можете легко расширить свои перечисления и т. Д. Для другого варианта использования без создания программы сбоя по умолчанию (else-block не будет выполнен по умолчанию для новых добавленных значений).

Итак, теперь меня интересуют другие PROs или CONs для использования этого стиля вместо окончания else-block.

Приветствует!

+5

Вы тоже волнуетесь, когда видите 'if'? Здесь нет стиля. Вы используете то, что вам нужно. –

+3

Зачем мне хранить пустой блок, если он мне не нужен? – Devolus

+0

Если вы хотите, вы можете положить 'else {}' в конце, но я сомневаюсь, что кто-то использует этот стиль. Почему бы не использовать 'switch' вместо этого? Обычно в коммутатор помещается пустая метка по умолчанию, если вы не хотите обрабатывать другие случаи. – Brandin

ответ

2

Это не вопрос плюсов и минусов. Это вопрос того, что вам нужно делать. Рассмотрим утверждение «если значение меньше 0 делает его 0». Код, необходимый для этого, -

if (value <0) 
    value = 0 

Нет необходимости в блоке else.

0

Вот мое мнение.

В большинстве случаев вы хотите использовать блок if() без каких-либо else. Иногда вам нужно else. Очень редко вам нужно if/else if.

Почему? Вы сами объяснили причины. BTW в случае перечислений не должно использоваться if/else, а не switch/case. Лучше puttern - внедрить бизнес-метод в enum сам по отдельности для каждого члена перечисления, а затем использовать его.

Как правило, если вы хотите использовать структуру if/else в любом случае, за исключением полиморфного решения завода.