- •1.Структура программы
- •1.1. Типы данных
- •1.1.1. Целые типы
- •1.1.2. Дробные (вещественные) типы
- •1.1.3. Логический тип
- •1.1.4. Строковый тип
- •1.1.5. Арифметические операторы
- •1.1.6. Нечисловые простые типы
- •1.1.7. Текстовые типы
- •2. Операторы ввода/вывода
- •2.1. Операторы ввода
- •2.2. Операторы вывода
- •2.3. Форматированный вывод
- •3. Логические выражения
- •3.1. Операции сравнения
- •3.2.1.Поразрядные операции » и «
- •3.2.2.Булевские операции присваивания
- •4.Ветвления
- •4.1. Тернарная операция
- •4.2.1. Оператор if
- •4.2.1. Внутристроковый условный оператор
- •4.3.1. Оператор switch
- •5. Организация циклов
- •5.1.Циклы do
- •5.2. Циклы while
- •5.3. Циклы for
- •5.4. Прерывание циклов
- •5.5. Бесконечные циклы
- •6. Преобразование типов
- •6.1. Неявное преобразование
- •6.2. Явное преобразование
- •6.3. Явные преобразования с помощью команд Convert
- •7. Массивы
- •7.1. Объявление массива
- •7.2 Циклы foreach
- •7.3. Многомерные массивы
- •7.4. Массивы массивов
- •8.Строки
- •8.Структуры (доделать)
- •9.Функции и процедуры
- •10.Метод Main()
- •11.Работа с файлы
- •12.Обработка ошибок и исключений(try.. .Catch.. .Finally)
5.5. Бесконечные циклы
Существует возможность с помощью кодирования ошибок и дизайна определять
так называемые бесконечные циклы, т.е. циклы, которые никогда не завершаются. В
качестве очень простого примера, рассмотрим следующий код:
while (true)
{
// код цикла
}
Такой цикл может быть полезен и его всегда можно прервать либо с помощью
оператора break, либо вручную через диспетчер задач Windows.
6. Преобразование типов
Все данные, независимо от типа, представляют собой последовательность битов, т.е. последовательность нулей и единиц. Предназначение переменной определяет способ, которым эти данные интерпретируются. Наиболее простым примером является тип char. Этот тип представляет символ из набора символов Unicode с использованием числа.
Однако, в общем, в разных типах переменных применяются разные схемы для
представления данных. Это означает, что даже если бы можно было помещать
последовательность битов из одной переменной в переменную другого типа, результаты могли бы быть совершенно не такими, как ожидалось.
Вместо такого взаимно однозначного сопоставления битов из одной переменной в
биты другой переменной, для данных необходимо применять технологии
преобразования шипов. Они бывают двух видов.
Неявное преобразование. Применяется, когда преобразования из типа А в тип
В возможно при любых обстоятельствах, и правила для выполнения
преобразования являются достаточно простыми для того, чтобы его можно было
доверить компилятору.
Явное преобразование. Применяется тогда, когда преобразование из типа А в
тип В возможно только при определенных обстоятельствах или когда правила
для преобразования являются достаточно сложными для того, чтобы было
выгодным использование дополнительной обработки.
6.1. Неявное преобразование
Неявное преобразование не требует от разработчика ни приложения усилий, ни
написания дополнительного кода. Рассмотрим приведенный ниже код:
var1 = var2;
Эта операция присваивания может как подразумевать неявное преобразование,
если тип var2 может быть неявно преобразован в тип varl, так и не подразумевать,
если типы обеих переменных одинаковы.
Неявные числовые преобразования
|
Тип |
Может быть преобразована в тип |
|
Byte |
short, ushort, int, uint, long, ulong, float, double, decimal |
|
Sbyte |
short, int, long, float, double, decimal |
|
Short |
int, long, float, double, decimal |
|
Ushort |
int, uint, long, ulong, float, double, decimal |
|
Int |
long, float, double, decimal |
|
Uint |
long, ulong, float, double, decimal |
|
Long |
float, double, decimal |
|
Ulong |
float, double, decimal |
|
Float |
double |
|
Char |
ushort, int, uint, long, ulong, float, double, decimal |
6.2. Явное преобразование
Уже по названию понятно, что явное преобразование имеет место только тогда, когда разработчик явным образом просит компилятор преобразовать значение из одного типа данных в другой. Из-за этого оно подразумевает написание дополнительного кода, формат которого может выглядеть по-разному, в зависимости от того, какой конкретно метод преобразования требуется использовать.
Операция приведения, по сути, заключается в принудительном преобразовании
данных из одного типа в другой и подразумевает использование следующего простого
синтаксиса:
(целевой_тип) исходная_переменная
Примечание:
Выполнение подобной операции приведения типов возможно лишь в некоторых ситуациях. Типы, имеющее очень отдаленное отношение или вообще никакого отношения друг к другу, скорое всего, не будут поддерживать преобразования посредством приведения.
С помощью этого синтаксиса можно принудительно преобразовывать типы (из shortвbyte),:
byte destinationVar;
short sourceVar = 7;
destinationVar = (byte)sourceVar;
Console.WriteLine("значение sourceVar: {0}", sourceVar);
Console.WriteLine("значение destinationVar: {0}", destinationVar);
После этого вывод будет выглядеть так:
значение sourceVar: 7
значение destinationVar: 7
