Сделай Сам Свою Работу на 5

Синтаксические конструкции условий





Операторы условного перехода позволяют выбрать для исполнения один из нескольких операторов в зависимости от условия.

2.2.1. Условная конструкция if

Синтаксис конструкции if:

if (<выражение>) <конструкция_1> [else < конструкция_2>];

В представленной конструкции if выражение должно быть булевского (логического) типа данных, т.е. принимающее одно из значений true или false. Если значение выражения равно true, то выполняется конструкция_1, если значение выражения – false, то выполняется конструкция_2.

Выражение часто записывается с помощью булевских операций. Пример выражения: a>b, где a и b – это переменные, значение которых определено ранее.

Вместо конструкции_1 и конструкции_2 может стоять как операторы, так и синтаксические конструкции. Чаще всего в качестве конструкции используется блоки программного кода ограниченные фигурными скобками.

Например:

if (a>0 && a<=10) Console.WriteLine(“Число находится в диапазоне (0,10].”); else Console.WriteLine(“Число вне диапазона (0,10].”);

Также конструкция имеет сокращенную форму:

if (<выражение>) <конструкция>;

В качестве выражения может быть использовано также только булевское выражение. В этом случае, если значение выражения равно true, то указанная после выражения конструкция исполняется. Если значение выражения false, то исполнение программы продолжается без выполнения условной конструкции.



2.2.2. Конструкция выбора switch.

Обычно при написании программы не рекомендуется использовать многократно вложенные друг в друга условные конструкции – программа становится громоздкой и трудно понимаемой. В случае если необходимо проверять достаточно много условий и в зависимости от них выполнять те или иные действия, то для этих целей в языке C# существует специальная конструкция switch.

Синтаксис оператора switch:

switch (<выражение>)

{

case <константа_1>:[<конструкция_1>]

[case <константа_2>:[<конструкция_2>]

[case <константа_n>:][<конструкция_n>]

[default: <конструкция_d >]

}

В конструкции switch осуществляется проверка результата выражения с набором констант. Чаще всего в качестве выражения используется какая-либо переменная. Тип констант в секции case и тип значения выражения обязан совпадать. В конструкции switch происходит последовательная проверка результата выражения с константами в каждой из секций case, в случае их равенства выполняется указанная конструкция в секции, если для данной секции конструкция не задана, выполняется следующая конструкция в порядке объявления. Таким образом, список секций case без выполняемых конструкций задает набор возможных альтернатив значений выражения для выполнения одного набора действий.



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

Пример 1:

switch (A)

{

case 2: Console.Write(“A равно 2”);

case 5: Console.Write(“A равно 5”);

case 10: Console.Write(“A равно 10”);

default: Console.Write(“A не равно не 2, не 5, не 10”);

}

Если значение выражения не совпадает ни с одним из значений констант в списке секций case, то выполняется конструкция_d в секции default, которая также должна передавать управление. Секция default также является не обязательной.

Пример 2:

switch (action)

{

case “delete”:

case “create”:

case “edit”: neededAccessLevel=”user”; break;

case “read”: neededAccessLevel=”guest”; break;

default: neededAccessLevel=”administrator”; break;

}

if (User.accessLevel!= neededAccessLevel)

throw new AccessDenided();

Примечание:

В случае объявления переменных или их первичной инициализации в условных конструкциях (if, switch), и использования этих же переменных вне конструкции в которой они были объявлены, возникает ошибка компиляции. В связи с тем, что перед использованием переменная должна быть обязательно инициализирована, а инициализация в условных конструкциях может быть не выполнена. В таком случае инициализация должна проводиться до использования и без условий, даже если созданные условия охватывают все возможные варианты.



Циклические конструкции

Итерационные конструкции (циклы) обычно используют для многократного повторения некоторых действий.

В C# имеется четыре различных итерационных конструкции:

· цикл с предусловием (while);

· цикл с постусловием (do);

· цикл со счетчиком (for);

· цикл перечисления (foreach).

2.3.1. Оператор с предусловием While

Цикл while используется, как правило, в тех случаях, когда заранее неизвестно количество повторений цикла.

Синтаксис оператора While:

while (выражение) <конструкция>;

Выражение должно быть булевского типа данных. Значение выражения вычисляется перед каждым выполнением оператора, поэтому цикл While называют еще циклом с предусловием. Оператор, составляющий тело цикла, выполняется, пока выражение равно true. Если значение выражения false, то оператор не выполняется и происходит выход из цикла.

Если первоначальное значение выражения равно false, то оператор не выполнится ни разу. Чтобы избежать бесконечного повторения (зацикливания), необходимо хотя бы одну переменную, входящую в выражение, изменять в теле оператора цикла. Более того, эти изменения должны быть такими, чтобы булевское выражение в ходе вычисления приняло значение false. Если же булевское выражение первоначально истинно и ни при каких обстоятельствах не становится ложным, то выполнение оператора цикла никогда не завершится.

Пример: вычисление суммы ряда, состоящего из 50 элементов.

S:=0; N:=1;

While N<=50 Do Begin

S:=S+1/N;

N:=N+1;

End;

2.3.2. Оператор с постусловием Repeat

Цикл Repeat, как правило, используется в тех случаях, когда заранее неизвестно количество повторений операторов тела цикла, но необходимо выполнить тело цикла хотя бы один раз. Синтаксис оператора цикла Repeat:

Repeat

оператор;

Until выражение;

В цикле Repeat вначале выполняется оператор (или операторы) тела цикла, затем вычисляется значение выражения; если его значение равно false, то вновь выполняется оператор, если значение выражения true, то цикл заканчивается. Если значение выражения равно true с самого начала, то оператор выполняется лишь один раз. Если выражение никогда не принимает значение true, то оператор выполняется бесконечное число раз, т.е. происходит «зацикливание».

Нижняя граница операторов циклической части обозначена словом Until, поэтому нет необходимости заключать операторы циклической части в операторные скобки begin … end.

Пример: вычисление суммы ряда, состоящего из 50 элементов.

S:=0; N:=1;

Repeat

S:=S+1/N; N:=N+1;

Until N>50; { пока значение N не превзойдет 50 }

2.3.3. Оператор со счетчиком For

Оператор цикла For служит для организации цикла в тех случаях, когда заранее известно, сколько раз должна повторяться циклическая часть программы, обычно цикл For используют при работе с массивами. Синтаксис оператора For по возрастающим значениям параметра:

For счетчик:=значение_1 To значение_2 Do оператор;

Счетчик – переменная порядкового типа.

Значение_1, значение_2 – начальное и конечное значения переменной счетчик.

Чтобы оператор в цикле выполнился хотя бы один раз, значение_2 должно быть равно либо больше, чем значение_1. Переменная цикла принимает последовательные значения данного типа от значения_1 до значения_2.

Например,

{для i=1,2,3,...,20 будет выполняться оператор А:=А+1}

For i:=1 To 20 Do A:=A+1;

Имеется возможность организовать цикл по убывающим значениям параметра. Для этого используется зарезервированное слово DownTo. Синтаксис оператора For по убывающим значениям параметра:

For счетчик:=значение_1 DownTo значение_2 Do оператор;

В этом случае переменная принимает последовательные убывающие значения данного типа от значения_1 до значения_2.

Например,

{для i=10,9,8,...,1 будет выполняться оператор А:=А+1}

For i:=10 DownTo 1 Do A:=A+1;

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.