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

5.3.3.7Операторы while

Для оператора switch для операции stmt в форме:

while ( выражение ) тело_while

  • переменная v имеет такое же состояние определенного присваивания на начало выражения expr, как и на начало оператора stmt;

  • если переменная v является определенно присвоенной в конце выражения expr, она является определенно присвоенной в ветви потока управления до операции while-body и до конечной точки операции stmt;

  • если переменная v имеет состояние «определенно присвоенное в результате выполнения выражения с итогом true» в конце выражения expr, она является определенно присвоенной в ветви потока управления до операции while-body, однако не является определенно присвоенной в конечной точке операции stmt;

  • если переменная v имеет состояние «определенно присвоенная в результате выполнения выражения с итогом false» в конце выражения expr, она является определенно присвоенной в ветви потока управления до конечной точки операции stmt, однако не является определенно присвоенной в ветви потока управления до операции while-body.

5.3.3.8Операторы do

Для оператора do для операции stmt в форме:

do тело_do while ( выражение ) ;

  • переменная v имеет такое же состояние определенного присваивания в ветви потока управления с начала операции stmt до операции do-body, как и в начале операции stmt.

  • переменная v имеет такое же состояние определенного присваивания в начале выражения expr, как и в конечной точке операции do-body.

  • если переменная v является определенно присвоенной в конечной точке expr, она является определенно присвоенной в ветви потока управления до конечной точки операции stmt.

  • если переменная v имеет состояние «определенно присвоенная в результате выполнения выражения с итогом false» в конце выражения expr, она является определенно присвоенной в ветви потока управления до конечной точки stmt.

5.3.3.9Операторы for

Проверка определенного присваивания для оператора for в форме

for ( инициализатор_for ; ; условие_for ; итератор_for ; ) внедренный_оператор

выполняется для следующей формы оператора:

{ инициализатор_for ; ; while ( условие_for ) { внедренный_оператор ; итератор_for ; ; } }

Если условие_for в операторе for опущено, оценка определенного присваивания выполняется таким образом, словно условие_for в приведенной выше развернутой записи оператора было заменено значением true.

5.3.3.10Операторы break, continue и goto

Состояние определенного присваивания переменной v в ветви потока управления, вызванной операторами break, continue или goto, соответствует состоянию определенного присваивания переменной v в начале оператора.

5.3.3.11Операторы throw

Для оператора stmt в форме

throw выражение ;

состояние определенного присваивания переменной v в начале выражения expr соответствует состоянию определенного присваивания переменной v в начале операции stmt.

5.3.3.12Операторы return

Для оператора stmt в форме

return выражение ;

  • Состояние определенного присваивания переменной v в начале выражения expr соответствует состоянию определенного присваивания переменной v в начале оператора stmt.

  • Если переменная v является выходным параметром, она должна быть определенно присвоена в одном из следующих случаев:

  • после выражения expr;

  • либо в конце блока finally конструкции try-finally или try-catch-finally, содержащей оператор return.

Для оператора stmt в форме

return ;

  • Если переменная v является выходным параметром, она должна быть определенно присвоена в одном из следующих случаев:

  • перед оператором stmt

  • либо в конце блока finally конструкции try-finally или try-catch-finally, содержащей оператор return.

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