
- •Операторы if и switch
- •могут использоваться блоки операторов. синтаксическое правило примет вид:
- •Оператор switch
- •expression – выражение целочисленного типа (char, byte, short, int) или типа string.
- •Вложенные операторы break передают управление оператору, следующему после оператора switch.
- •char ch;
- •Операторы цикла
- •init – обычно оператор присваивания, инициализирующий
- •Пример 2. Шаг изменения управляющей переменной может быть произвольным. Так, следующий цикл выводит
- •Пример 5. Если управляющая переменная не используется за пределами цикла, то ее можно
- •Пример 6. Цикл (не только с оператором for) может быть пустым, то есть
- •Синтаксис оператора цикла для работы с коллекцией :
- •type var - тип и имя специальной
- •следующий цикл foreach вычислит сумму элементов массива:
- •сложнее со ступенчатыми массивами.
- •Оператор while
- •Элемент cond имеет тип bool.
- •Оператор do while
- •Элемент cond имеет тип bool.
- •Операторы перехода
- •Оператор continue
- •Оператор goto

Операторы if и switch
Оператор if
Синтаксис полной формы имеет вид: if (condition) statement;
else statement;
condition – выражение типа bool, statement – оператор.
Часть else может быть опущена (сокращенная форма оператора).
!! в отличие от Паскаля перед else - точка с запятой.
1

могут использоваться блоки операторов. синтаксическое правило примет вид:
if (condition)
{
statement1;
statement2;
statementN;
}
else
{
statement1;
statement2;
statementM;
}
Примечание. Допускается использование вложенных операторов if,
во вложенных полных операторах часть else всегда относится к ближайшему if.
2

Оператор switch
Синтаксис оператора имеет вид: switch (expression)
{
case const1: statements break;
case const2: statements break;
…
case constN: statements break; default: statements break;
}
3

expression – выражение целочисленного типа (char, byte, short, int) или типа string.
Литералы const должны иметь тип, совместимый с типом выражения.
Значения литералов в пределах одного блока не могут совпадать.
При совпадении значения выражения с одним из литералов выполняются ассоциированные с ним операторы.
Если такого совпадения нет, то выполняются операторы ветви default (буквально, по умолчанию).
Эта ветвь необязательна.
4

Вложенные операторы break передают управление оператору, следующему после оператора switch.
Не допускается, чтобы одна ветвь передавала управление другой.
Именно этому и препятствует оператор break.
Можно сделать так, чтобы несколько ветвей были связаны с одним и тем же кодом.
Для этого просто достаточно пропустить и повторение кода, и оператор break.
Если в некоторой ветви case (default) есть
оператор(ы), то присутствие оператора break
обязательно.
Пример: распознавание гласных и согласных букв:
5

char ch;
Console.Write(“vvedite bukvu: “); ch = (char)Console.Read();
//преобразование для сравнения с символами switch (ch)
{
case ‘a’: case ‘e’: case ‘i’: case ‘o’: case ‘u’: case ‘y’:
Console.WriteLine("glasnaja bukva"); break;
default:
Console.WriteLine("soglasnaja bukva"); break;
}
6

Операторы цикла
Оператор for
Общее синтаксическое представление : for (init; cond; iter) statement;
или
for (init; cond; iter)
{
statement1;
statement2;
…
statementN;
}
7

init – обычно оператор присваивания, инициализирующий
управляющую переменную цикла - счетчик для управления циклом.
cond имеет тип bool.
Цикл повторяется, пока значение cond истинно (true).
Значение cond проверяется в начале цикла (цикл с предусловием), поэтому если изначально cond имеет значение ложь (false), цикл не выполнится ни разу.
iter - выражение, пересчитываемое на каждом шаге цикла, которое обычно изменяет значение управляющей переменной.
Пример 1. Тип управляющей переменной не обязательно должен быть целым.
double k, sum, koren; sum=0;
for(k=1.0; k<10.0; k++)
{koren = Math.Sqrt (k);
sum+=koren;
}
Console.WriteLine(sum);
8

Пример 2. Шаг изменения управляющей переменной может быть произвольным. Так, следующий цикл выводит все числа, кратные 13 от 13 до 1300:
int k;
for(k=13; k<=1300; k+=13) Console.WriteLine(k);
Пример 3. В цикле можно использовать элементы init и iter, состоящие из нескольких операторов (выражений), которые будут выполняться (вычисляться) соответственно в начале цикла и на каждом его шаге.
Для этого достаточно разделить эти операторы (выражения) запятыми.
9

int i, k;
for(i= 0, k=10; i<=k; i++, k--) Console.WriteLine(i + k);
Пример 4. Любой из элементов init, cond, iter или даже все можно пропускать, однако точка с запятой должна присутствовать. При этом пропуск cond приводит к бесконечному циклу, то есть
for (;;) эквивалентно for (; true;)
для остановки можно использовать оператор break, передающий управление следующему после цикла оператору,
10

double limit = 100.5; double k, sum, koren; sum=0;
for(k=1.0;; k++)
{
koren = Math.Sqrt (k); sum+=koren;
if (sum > limit) break;
}
Console.WriteLine(k);
11