Каждая строка должна содержать максимум один оператор:
++argv; // Хорошо
--argc; // Хорошо
++argv; --argc; // ПЛОХО!
Составные операторы, это такие операторы, которые содержат список операторов, заключенных в фигурные скобки "{ statements }".
Оператор return со значением не должен использовать ссылку на родителя, если только это не сделает возвращаемое значение более очевидным:
return;
return myDisk.size();
return (size ? size : defaultSize);
Все операторы типа if-else должны иметь следующий вид:
if (condition) {
statements;
}
if (condition) {
statements;
} else {
statements;
}
if (condition) {
statements;
} else if (condition) {
statements;
} else {
statements;
}
Примечание: Оператор if следует всегда писать с фигурными скобками {}. Избегайте следующей ошибки:
if (condition) //ПЛОХО! ОТСУТСТВУЮТ СКОБКИ {}!
statement;
Оператор for должен иметь следующий вид:
for (initialization; condition; update) {
statements;
}
Пустой цикл for (в котором вся работа выполняется на стадии инициализации, проверки условия и инкрементирования) должны иметь следующий вид:
for (initialization; condition; update);
Оператор while должен иметь следующий вид:
while (condition) {
statements;
}
Пустой цикл while должен иметь следующий вид:
while (condition);
Оператор do-while должен иметь следующий вид:
do {
statements;
} while (condition);
Оператор switch должен иметь следующий вид:
switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;
case XYZ:
statements;
break;
default:
statements;
break;
}
Всякий раз, если case предполагает автоматический переход к следующему (отсутствует оператор break), добавляйте комментарий в том месте, где должен быть break. Это показано в примере выше: комментарий /* falls through */.
Каждый оператор switch должен содержать default вариант. Ставить break в инструкции default необязательно, но это защищает от возможной ошибки в будущем, если впоследствии добавят еще операторы case ниже.
Оператор try-catch должен иметь следующий вид:
try {
statements;
} catch (ExceptionClass e) {
statements;
}
Оператор try-catch также может быть дополнен блоком finally, который выполняется независимо от того, успешно завершился блок try, или нет.
try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}