Являются ли однострочные операторы if или if без скобок плохой практикой? - PullRequest
18 голосов
/ 28 марта 2009
if (condition) { /* do something */ }
else { /* do something */ }

if (condition)
    /* do something */
else
    /* do something */

Мне сказали, что первый случай не был хорошей идеей. Я понятия не имею, действительно ли это так (или для второго тоже); это не сокращает количество, чтобы напечатать? Или это потому, что он просто создает беспорядок?

Ответы [ 12 ]

0 голосов
/ 28 марта 2009

Это больше стиль кодирования, чем все остальное. Тем не менее, мое личное мнение таково, что ваш второй пример потенциально весьма вреден. Достаточно просто случайно «добавить вторую строку в блок» на языках, где фигурные скобки - единственный способ создания блоков. Но в PHP, где существует альтернативный синтаксис, это еще менее вероятно, чтобы отключить необходимые предупреждающие сигналы:

if ($_GET["asdf"]==1):
    /* do something */
else:
    /* do something */
endif;

Практическое правило: если вы собираетесь поставить «сделать что-то» на отдельной строке, используйте фигурные скобки; если вы не собираетесь использовать фигурные скобки, поместите их в одну строку!

0 голосов
/ 28 марта 2009

Это две строки, так что на самом деле это не одна строка.

Нет ничего плохого в одной строке if s, когда это делает код более легким для чтения.

Например, что-то вроде этого:

if (last_item) print ", and " else print ", "

намного лучше, чем

if (last_iem)
{
    print ", and "
}
else
{
    print ", "
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...