224 __ ____Часть II. Программирование на C++
Переменные, объявленные внутри составных операторов, могут быть использованы только внутри блока. Таким образом, целое j в предыдущем примере вне скобок не определено.
Тела функций также заключаются в скобки; следовательно, тело функции является составным оператором. Пустое тело функции — это один из немногих случаев, в которых имеет смысл пустой блок (т. е. составной пустой оператор). При разработке программ можно создавать "огрызки" функций — функции с пустыми телами — и заполнять их по ходу дела.
Точка с запятой после закрывающей скобки не обязательна, однако хуже не будет, если ее поставить.
Операторы метки
Оператор метки (label statement) состоит из 'идентификатора и двоеточия. Существует два типа меток. Первый — это метка-идентификатор (identifier label), служащая "мишенью" для оператора перехода goto. Она состоит из идентификатора, за которым следует двоеточие и оператор:
goto FATAL_ERROR;
// Еще операторы. FATAL_ERROR: abort() ;
Правила именования переменных применимы и к меткам-идентификаторам. Область видимости идентификатора ограничена телом функции, в которой он определен. У меток собственное пространство имен, поэтому идентификаторы меток и переменных внутри одной области видимости могут совпадать. Поскольку операторы goto встречаются довольно редко, то и метки-идентификаторы также редки.
Второй тип оператора метки используется в операторе switch. Эти метки рассматриваются в разделе "switch".
Операторы выбора
Операторы выбора (selection statements) выполняют другие операторы в зависимости от условных значений. Это позволяет управлять течением программы на основе определенных критериев. Существует два типа таких операторов: оператор if и оператор switch.
//
Оператор if проверяет выражение. Если значение выражения ненулевое, или true (истинно), тогда выполняется следующий за ним оператор; если же оно равно нулю, т. е. false (ложно), то следующий оператор не выполняется. Например: