Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
7
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

17. Структуры.

Структуры, как и классы, представляют определенным образом организованные данные. В структурах могут содержаться как данные, так и функции. Однако, в отличие от классов, структуры являются типами значений и для них не требуется выделение памяти из кучи. Переменная с типом структуры непосредственно содержит данные этой структуры, в то время как переменная с типом класса содержит ссылку на данные, которые считаются объектом.

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

доступные в C# простые типы, такие как int, double и bool, фактически являются структурами. Благодаря тому, что эти предопределенные типы являются структурами, в языке C# можно реализовывать новые «простые» типы при помощи переопределения структур и операторов.

18.Структура if.

Условный оператор if используется для разветвления процесса обработки данных на два направления. Он может иметь одну из форм: сокращенную или полную. 

Форма сокращенного оператора if: 

if (B)  S;

 где В - логическое или арифметическое выражение, истинность которого проверяется; S - оператор: простой или составной.

 При выполнении сокращенной формы оператора if сначала вычисляется выражение B, затем проводится анализ его результата: если B истинно, то выполняется оператор S; если B ложно, то оператор S пропускается. Таким образом, с помощью сокращенной формы оператора if можно либо выполнить оператор S, либо пропустить его. 

 Форма полного оператора if:

if (B) S1; else S2;

 где B - логическое или арифметическое выражение, истинность которого проверяется; S1, S2- оператор: простой или составной.

 При выполнении полной формы оператора if сначала вычисляется выражение B, затем анализируется его результат: если B истинно, то выполняется оператор S1, а оператор S2 пропускается; если B ложно, то выполняется оператор S2, а S1 - пропускается. Таким образом, с помощью полной формы оператора if можно выбрать одно из двух альтернативных действий процесса обработки данных.

19. Структура switch.

выражение switch — это оператор управления, выбирающий раздел переключения для выполнения из списка кандидатов.

Каждый раздел switch содержит одну или несколько меток case и список из одного или нескольких операторов. В следующем примере показан простой оператор switch с тремя разделами параметров.Каждый раздел switch содержит одну метку case, такую как case 1, и список из двух операторов.

int caseSwitch = 1;

switch (caseSwitch)

{ case 1:

Console.WriteLine("Case 1");

break;

case 2:

Console.WriteLine("Case 2");

break;

default:

Console.WriteLine("Default case");

break; }

В каждой метке case указывается постоянное значение. Управление передается разделу оператора switch, метка case которого содержит постоянное значение, соответствующее значению выражения switch,caseSwitch. Если метка case не содержит соответствующего значения, элемент управления передается в раздел default, если таковой имеется. Если раздела default нет, действия не предпринимаются и элемент управления передается за пределы оператора switch. В предыдущем примере выполняются инструкции первого раздела switch, потому что метка case case 1 определяет значение 1 и значениеcaseSwitch — также 1.

Оператор switch может включать любое количество разделов switch, причем каждый раздел может содержать одну или несколько меток case. Однако две метки case не могут содержать одно и то же постоянное значение.

Выполнение списка операторов в выбранном разделе начинается с первого оператора и продолжается по списку, обычно до достижения оператора перехода, такого как break, goto case, return или throw.В этой точке управление передается за пределы оператора switch или к другой метке case.

В отличие от C++ C# не позволяет продолжить выполнение с одной секции переключения на другую.