Всегда использовать фигурные скобки - это хорошая идея, но стандартный ответ, который всегда дает «что если кто-то добавит строку кода и забудет добавить фигурные скобки?» это довольно слабая причина.
Существует небольшая ошибка, которую можно внести, не имея брекетов с самого начала. Это случалось со мной несколько раз, и я видел, как это случалось с другими программистами.
Все начинается, достаточно невинно, с простого выражения if.
if (condition)
do_something();
else
do_something_else();
Что все хорошо.
Тогда кто-то приходит и добавляет еще одно условие в if. Они не могут добавить его, используя && к самому оператору if, потому что логика будет неправильной, поэтому они добавляют еще один if. Теперь у нас есть:
if (condition)
if (condition2)
do_something();
else
do_something_else();
Вы видите проблему? Это может выглядеть правильно, но компилятор видит это по-другому. Это выглядит так:
if (condition)
if (condition2)
do_something();
else
do_something_else();
Что означает что-то совершенно другое. Компилятор не заботится о форматировании. Остальное идет с ближайшим, если. Люди, с другой стороны, полагаются на форматирование и могут легко пропустить проблему.