- •Тема 1. Программирование на c# 8 Типы данных
- •Локальные и глобальные переменные
- •Описание всех встроенных типов языка c# и их основные характеристики.
- •Объявление переменных
- •Синтаксис объявления
- •Выражения
- •Приоритет и порядок выполнения операций
- •Операции "увеличить" и "уменьшить" (increment, decrement)
- •Логические операции
- •Условное выражение
- •Перегрузка операций
- •Выполнение выражения
- •Класс Math и его функции
- •Класс Random и его функции
- •Присваивание
- •Операторы языка c#
- •Операторы перехода
Объявление переменных
Переменныеи типы - тесно связанные понятия. С объектной точки зренияпеременная- это экземпляр типа. Скалярнуюпеременнуюможно рассматривать как сущность, обладающую именем, значением и типом. Имя и тип задаются при объявлениипеременнойи остаются неизменными на всевремя ее жизни. Значениепеременнойможет меняться в ходе вычислений, эта возможность вариации значений и дало имя понятиюпеременная(Variable)в математике и программировании. Получение начального значенияпеременнойназывается ееинициализацией. Важной новинкой языка C# является требование обязательнойинициализациипеременнойдо начала ее использования. Попытка использовать неинициализированнуюпеременнуюприводит к ошибкам, обнаруживаемым еще на этапе компиляции.Инициализацияпеременных, как правило, выполняется в момент объявления, хотя и может быть отложена.
Синтаксис объявления
Общая структура объявления:
[<атрибуты>] [<модификаторы>] <тип> <объявители>;
Если атрибуты и модификаторы могут и не указываться в объявлении, то задание типа необходимо всегда. При объявлении простых переменных указывается их тип и список объявителей, где объявитель - это имя или имя с инициализацией. Список объявителей позволяет в одном объявлении задать несколько переменных одного типа. Если объявитель задается именем переменной, то имеет место объявление с отложенной инициализацией. Хороший стиль программирования предполагает задание инициализации переменной в момент ее объявления.
Выражения
Выражения строятся из операндов - констант, переменных, функций, - объединенных знаками операций и скобками. При вычислении выражения определяется его значение и тип. Эти характеристики однозначно задаются значениями и типами операндов, входящих в выражение, и правилами вычисления выражения. Правила также задают:
приоритет операций;
для операций одного приоритета порядок применения - слева направо или справа налево;
преобразование типов операндов и выбор реализации для перегруженных операций;
тип и значение результата выполнения операции над заданными значениями операндов определенного типа.
Программист, записывающий выражение, должен знать, по каким правилам оно будет вычисляться. Сложность в том, что эти правила, начиная с приоритета операций, варьируются от языка к языку. Давайте посмотрим, как это делается в C#.
Приоритет и порядок выполнения операций
Большинство операций в языке C#, их приоритет и порядок наследованы из языка C++. Однако имеются и различия: например, нет операции " , ", позволяющей вычислять список выражений; добавлены уже упоминавшиеся операции checked и unchecked, применимые к выражениям.
Как это обычно делается, приведем таблицу приоритетов операций, в каждой строке которой собраны операции одного приоритета, а строки следуют в порядке приоритетов, от высшего к низшему.
|
Приоритет |
Категория |
Операции |
Порядок |
|
0 |
Первичные |
(expr) x.y f(x) a[x] x++ x-- new sizeof(t) typeof(t) checked(expr) unchecked(expr) |
Слева направо |
|
1 |
Унарные |
+ - ! ~ ++x --x (T)x |
Слева направо |
|
2 |
Мультипликативные (Умножение) |
* / % |
Слева направо |
|
3 |
Аддитивные (Сложение) |
+ - |
Слева направо |
|
4 |
Сдвиг |
<< >> |
Слева направо |
|
5 |
Отношения, проверка типов |
< > <= >= is as |
Слева направо |
|
6 |
Эквивалентность |
== != |
Слева направо |
|
7 |
Логическое И |
& |
Слева направо |
|
8 |
Логическое исключающее ИЛИ (XOR) |
^ |
Слева направо |
|
9 |
Логическое ИЛИ (OR) |
| |
Слева направо |
|
10 |
Условное И |
&& |
Слева направо |
|
11 |
Условное ИЛИ |
|| |
Слева направо |
|
12 |
Условное выражение
|
? : |
Справа налево |
|
13 |
Присваивание |
= *= /= %= += -= <<= >>= &= ^= |= |
Справа налево |
