Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp Language Specification.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
4.75 Mб
Скачать

8.5.2Объявления локальных констант

Объявление_локальной_константы объявляет одну или несколько локальных констант.

объявление_локальной_константы: const тип деклараторы_констант

деклараторы_констант: декларатор_константы деклараторы_констант , декларатор_константы

объявление_константы: идентификатор = выражение_константы

Тип в объявлении_локальной_константы задает тип констант, представленных в объявлении. За типом следует список деклараторов_констант, каждый из которых представляет новую константу. Декларатор_константы состоит из идентификатора, определяющего имя константы, за которым следуют лексема = и константное_выражение (§7.19), задающее значение константы.

Тип и константное_выражение в объявлении локальной константы подчиняются тем же правилам, что и в объявлении члена-константы (§10.4).

Значение локальной константы получается из выражения с использованием простого_имени (§7.6.2).

Областью видимости локальной константы является блок, в котором встречается объявление. Ссылка на локальную константу в позиции текста, предшествующей ее декларатору_константы, рассматривается как ошибка. Объявление локальной переменной или константы в области видимости другой локальной константы с тем же именем распознается как ошибка времени компиляции.

Объявление нескольких локальных констант эквивалентно нескольким объявлениям одиночных констант одного и того же типа.

8.6Операторы-выражения

Оператор_выражение служит для вычисления данного выражения. Значение, вычисленное выражением (если оно получено), не сохраняется.

оператор_выражение: выражение_оператора ;

выражение_оператора: выражение_вызова выражение_создания_объекта присваивание выражение_после_инкремента выражение_после_декремента выражение_до_инкремента выражение_до_декремента

Не все выражения разрешается использовать как операторы языка. В частности, такие выражения, как x + y или x == 1, которые просто вычисляют значение (впоследствии отбрасываемое), недопустимы в качестве операторов языка.

В ходе выполнения оператора_выражения производится вычисление содержащегося в нем выражения, после чего управление передается в конечную точку оператора_выражения. Конечная точка оператора_выражения считается достижимой, если достижим сам оператор_выражение.

8.7Операторы выбора

Оператор выбора выбирает для выполнения один из нескольких возможных операторов языка на основании значения заданного выражения.

оператор_выбора: оператор_if оператор_switch

8.7.1Оператор if

Оператор if выбирает оператор языка для выполнения на основании значения логического выражения.

оператор_if: if ( логическое_выражение ) внедренный_оператор if ( логическое_выражение ) внедренный_оператор else внедренный_оператор

Компонент else относится к лексикографически ближайшему предшествующему компоненту if, разрешенному правилами синтаксиса. Так, оператор if в виде

if (x) if (y) F(); else G();

равнозначно

if (x) { if (y) { F(); } else { G(); } }

Оператор if выполняется следующим образом.

  • Вычисляется логическое_выражение (§7.20).

  • Если результатом логического выражения является true, управление передается первому внедренному оператору. Если управление достигает конечной точки этого оператора, после этого управление передается в конечную точку оператора if.

  • Если результатом логического выражения является false и в операторе имеется компонент else, управление передается второму внедренному оператору. Если управление достигает конечной точки этого оператора, после этого управление передается в конечную точку оператора if.

  • Если результатом логического выражения является false и компонент else отсутствует, управление передается в конечную точку оператора if.

Первый внедренный оператор в составе оператора if считается достижимым, если оператор if достижим и значением логического выражения не является константа false.

Второй внедренный оператор оператора if (если он имеется) достижим, если оператор if достижим и значением логического выражения не является константа true.

Конечная точка оператора if достижима, если достижима конечная точка по крайней мере одного из его внедренных операторов. Кроме того, конечная точка оператора if без компонента else считается достижимой, если оператор if достижим и значением логического выражения не является константа true.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]