Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C# Лекция_4 Операторы языка C#.docx
Скачиваний:
21
Добавлен:
18.12.2018
Размер:
467.04 Кб
Скачать

Основы программирования на С# 3.0: ядро языка

4. Лекция: Операторы языка c#

Рассмотрен весь набор операторов языка С#. Обсуждаются их достоинства и недостатки. Операторы присваивания выбора и циклов составляют основу процесса алгоритмизации. Рассмотрены специальные операторы языка try - catch – finally, позволяющие организовать обработку исключительных ситуаций. Рассмотрен оператор yield, используемый в итераторах. Обсуждается тема математической бесконечности и конечности вычислений. Рассматриваются классические алгоритмы и даются задачи на эту тему.

1.Оператор присваивания 2

1.1.Семантика присваивания 2

1.1.1.Операции "упаковать" и "распаковать" - boxing и unboxing 3

1.2.Блок, или составной оператор 4

1.3.Пустой оператор 5

2.Операторы выбора 5

2.1.Оператор if 5

2.2.Оператор switch 6

3.Операторы перехода 8

3.1.Оператор goto 8

3.2.Операторы break и continue 8

3.3.Оператор return 9

4.Операторы цикла 9

4.1.Оператор for 9

4.2.Циклы While 10

4.3.Цикл foreach 11

5.Специальные операторы 12

5.1.Оператор yield 12

5.2.Операторы try, catch, finally 13

5.3.Операторы checked и unchecked 13

5.4.Оператор fixed 13

5.5.Оператор lock 14

6.Проект Statements 14

7.Задачи 14

7.1.Альтернатива и разбор случаев 15

7.2.Вычисление сумм, произведений и рекуррентные соотношения 18

7.3.Рекуррентные вычисления 22

7.4.Бесконечность и компьютеры. Вычисления с точностью ε 27

7.5.Проекты 33

Состав операторов языка C#, их синтаксис и семантика унаследованы от языка С++. Как и положено, потомок частично дополнил состав, переопределил синтаксис и семантику отдельных операторов, постарался улучшить характеристики языка во благо программиста. Посмотрим, насколько это удалось языку C#.

  1. Оператор присваивания

В лекции 3 подробно рассматривались операция и выражение присваивания

X = expr

и многочисленные вариации, позволяющие строить выражения вида:

X1 += X2 *= … = Xk = expr

Синтаксически присваивание состоит из левой и правой частей, разделенных знаком операции присваивания. Правая часть - это выражение, в том числе выражение присваивания, как в последнем примере. Левая часть - это переменная; более точно: левая часть представляет собой lvalue - выражение левой части, которому можно присвоить значение. Переменная является наиболее распространенным частным случаем lvalue.

Выражение присваивания представляет собой пример выражения с побочным эффектом. Прямым эффектом вычисления такого выражения является вычисленное значение и тип выражения expr. Побочным эффектом является присваивание вычисленного значения переменной левой части.

Выражение с побочным эффектом в языке C# можно легко преобразовать в соответствующий оператор. Стоит такое выражение закончить символом точка с запятой, как получится оператор, который можно использовать всюду, где синтаксически допустимы операторы языка. Так что синтаксически оператор присваивания выглядит так:

X = expr;

Допустимы и многочисленные вариации:

X1 += X2 *= … = Xk = expr;

К операторам присваивания можно отнести и такие операторы, как:

X++; X--; ++X; --X;

Эти операторы получены из соответствующих выражений с побочным эффектом - приписыванием в конце символа точки с запятой. Когда выражения с побочным эффектом преобразуются в операторы, побочный эффект занимает подобающее ему место и задает семантику оператора, а вычисление значения выражения становится частью процесса выполнения оператора.