
- •Операторы 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

Пример 5. Если управляющая переменная не используется за пределами цикла, то ее можно объявить непосредственно при инициализации - она будет доступна во
всех операторах, входящих в данный цикл, но не видна за его пределами.
И наоборот, можно объявить и инициализировать управляющую переменную до вхождения в цикл.
int k=0;
for(; k<=1300; k+=13) Console.WriteLine(k);
//Здесь k тоже доступна
for(int k=0; k<=1300; k+=13) Console.WriteLine(k);
//Здесь k недоступна
12

Пример 6. Цикл (не только с оператором for) может быть пустым, то есть присутствует только заголовок. Например, следующий код позволяет определить сумму целых чисел от 1 до n:
int n=10; int s=0;
for(int k=0; k<=n; s+=k++);
Оператор foreach
В C# определен особый оператор цикла для работы с так называемыми коллекциями.
Можно понимать коллекцию как группу объектов.
В частности, массив – это тоже разновидность коллекции.
13

Синтаксис оператора цикла для работы с коллекцией :
foreach (type var in collection) statement; или
foreach (type var in collection)
{
statement1;
statement2;
…
statementN;
}
14

type var - тип и имя специальной
итерационной переменной, которая во время выполнения цикла будет последовательно принимать значение элементов из указанной коллекции collection.
тип итерационной переменной должен неявно преобразовываться в базовый тип массива, то есть в тип его элементов.
15

следующий цикл foreach вычислит сумму элементов массива:
int[] m = {-5, 4, 10}; int sum=0;
foreach(int i in m) sum+=i;
Можно использовать оператор foreach и при работе с многомерными массивами, учитывая, что перебор элементов идет по строкам, то есть в первую очередь меняется крайний правый индекс, а в последнюю – крайний левый.
Например, для вывода элементов двумерного массива, достаточно записать следующий код:
int[,] massiv = new int[3,3];
...
foreach(int i in massiv) Console.Writeline(i);
16

сложнее со ступенчатыми массивами.
при переборе элементов для каждого измерения нужно записать свой оператор foreach.
Например, как в случае нахождения суммы элементов двумерного ступенчатого массива:
int[][] m = new int[2][]; m[0]=new int[3]; m[1]=new int[4];
...
int sum=0; foreach(int[] i1 in m)
{
foreach(int i2 in i1) { sum+=i2;
}
}
17

Оператор while
Синтаксис этого оператора имеет следующий вид:
while (cond) statement; или
while (cond)
{
statement1;
statement2;
…
statementN;
}
18

Элемент cond имеет тип bool.
Цикл повторяется,
пока значение cond истинно (true).
Значение cond проверяется в начале цикла (цикл с предусловием),
следовательно, если cond изначально имеет значение ложь (false), цикл не выполнится ни разу.
Пример: с какой попытки будет сгенерировано случайное число из диапазона от 1 до 100, кратное 7:
int k=0;
//Число попыток
Random rnd=new Random(123);
//Вызов конструктора while(rnd.Next(1, 100)%7!=0) k++;
Console.WriteLine((k+1).ToString()+" popytok");
19

Оператор do while
оператор позволяет запрограммировать циклический алгоритм с постусловием, то есть цикл, который обязательно выполнится, по крайней мере, один раз.
Синтаксис оператора:
do statement; while (cond);
или |
|
do |
|
{ |
|
statement1; |
|
statement2; |
|
… |
|
statementN; |
|
} |
|
while (cond); |
20 |
|

Элемент cond имеет тип bool.
Цикл повторяется, пока значение cond остается истинным (true).
Значение cond проверяется в конце цикла (цикл с постусловием), следовательно, независимо от значения cond цикл выполнится хотя бы раз.
Следующий программный код обеспечит повторение считывания символов с клавиатуры до ввода символа «звездочка»:
char ch;
do
{
ch= (char)Console.Read();
}
while(ch!= ‘*’);
21