- •4. Лекция: Операторы языка c#
- •Оператор присваивания
- •Семантика присваивания
- •Операции "упаковать" и "распаковать" - boxing и unboxing
- •Блок, или составной оператор
- •Пустой оператор
- •Операторы выбора
- •Оператор if
- •Оператор switch
- •Операторы перехода
- •Оператор goto
- •Операторы break и continue
- •Оператор return
- •Операторы цикла
- •Оператор for
- •Циклы While
- •Цикл foreach
- •Специальные операторы
- •Оператор yield
- •Операторы try, catch, finally
- •Операторы checked и unchecked
- •Оператор fixed
- •Оператор lock
- •Проект Statements
- •Альтернатива и разбор случаев
- •Вычисление сумм, произведений и рекуррентные соотношения
- •Рекуррентные вычисления
- •Бесконечность и компьютеры. Вычисления с точностью ε
- •Проекты
Основы программирования на С# 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#.
-
Оператор присваивания
В лекции 3 подробно рассматривались операция и выражение присваивания
X = expr
и многочисленные вариации, позволяющие строить выражения вида:
X1 += X2 *= … = Xk = expr
Синтаксически присваивание состоит из левой и правой частей, разделенных знаком операции присваивания. Правая часть - это выражение, в том числе выражение присваивания, как в последнем примере. Левая часть - это переменная; более точно: левая часть представляет собой lvalue - выражение левой части, которому можно присвоить значение. Переменная является наиболее распространенным частным случаем lvalue.
Выражение присваивания представляет собой пример выражения с побочным эффектом. Прямым эффектом вычисления такого выражения является вычисленное значение и тип выражения expr. Побочным эффектом является присваивание вычисленного значения переменной левой части.
Выражение с побочным эффектом в языке C# можно легко преобразовать в соответствующий оператор. Стоит такое выражение закончить символом точка с запятой, как получится оператор, который можно использовать всюду, где синтаксически допустимы операторы языка. Так что синтаксически оператор присваивания выглядит так:
X = expr;
Допустимы и многочисленные вариации:
X1 += X2 *= … = Xk = expr;
К операторам присваивания можно отнести и такие операторы, как:
X++; X--; ++X; --X;
Эти операторы получены из соответствующих выражений с побочным эффектом - приписыванием в конце символа точки с запятой. Когда выражения с побочным эффектом преобразуются в операторы, побочный эффект занимает подобающее ему место и задает семантику оператора, а вычисление значения выражения становится частью процесса выполнения оператора.