Урок 6. Циклические структуры. Цикл for.


Вопросы
  1. Приведите примеры алгоритмов множественного ветвления с использованием конструкции switch.
  2. В операторе switch можно использовать метку default. Каково ее назначение?
  3. Могут ли быть значениями меток case переменные, а не константы?

      Циклом называется последовательность операторов (один или более), повторяющихся заданное число раз или до тех пор, пока не будет выполнено определенное условие. В языке С# определено четыре типа цикла:

  1. Цикл for
  2. Цикл while
  3. Цикл do ... while
  4. Цикл foreach

Выбор типа оператора цикла зависит от задачи программирования и личных предпочтений кодирования. Одним из основных отличий C# от других языков, таких как C++, Java, является цикл foreach, разработанный для упрощения итераций по коллекциям данных.

Цикл for

В операторе цикла for используется механизм, при котором инициализируется некоторая локальная переменная (обычно - счетчик цикла) и выполняется последовательность операторов, пока истинно логическое условие. Синтаксис конструкции цикла for:

for (инициализатор; логическое условие; итератор)
      {оператор или последовательность операторов;}
Инициализатор - выражение, вычисляемое до выполнения цикла (начальное значение переменной цикла).
Логическое условие - логическое выражение, вычисляемое перед каждой итерацией цикла.
Итератор - выражение, выполняющееся после каждой итерации цикла.

Цикл for является циклом с предусловием. Цикл завершается, если вычисленное перед очередным шагом итерации логическое условие становится равным false.
Рассмотрим примеры с использованием оператора цикла for.
Пример 1
Задается множество геометрических тел и многогранников, представленное массивом строк. Элементы множества выводятся на консоль.
...
String[] mng = { "куб", "шар","эллипсоид", "цилиндр", "пирамида", "конус",
"параллелепипед", "призма","тетраэдр","октаэдр","додекаэдр","икосаэдр" };
for (int i=0; i<12; i++)
{
Console.Write(mng[i]+"\n");
}
Console.Read();
...

Результат выполнения программы:
куб
шар
эллипсоид
цилиндр
пирамида
конус
параллелепи
пед призма
тетраэдр
октаэдр
додекаэдр
икосаэдр

Пример 2

Задано десять рациональных чисел: 1, 1/2, 1/3, 1/4, ..., 1/10. Вводится этот массив. Выводятся на консоль их вещественные значения.

static void Main(string[] args)
{
Double[] rational = new Double[10];
Console.Write("Рациональные числа: 1, 1/2, 1/3, 1/4, ..., 1/10\n");
for (int k = 0; k < 10; k++)
{
rational[k] = Convert.ToDouble(1)/Convert.ToDouble(k+1);
switch (k)
{
Case 2:
Case 5:
Case 6:
Case 8:
Console.Write("1/{0:D} ~ {1:E}\n", k+1, rational[k]);
break;
default:
Console.Write("1/{0:D} = {1:E}\n", k+1, rational[k]);
break;
}
}
Console.Read();
}

Результат выполнения программы:
Рациональные числа: 1, 1/2, 1/3, 1/4, ..., 1/10
1/1 = 1.000000E+000
1/2 = 5.000000E-001
1/3 ~ 3.333333E-001
1/4 = 2.500000E-001
1/5 = 2.000000E-001
1/6 ~ 1.666667E-001
1/7 ~ 1.428571E-001
1/8 = 1.250000E-001
1/9 ~ 1.111111E-001
1/10 = 1.000000E-001

Вложенные циклы

      Циклическая структура называется вложенным циклом, если она организована в теле другого - внешнего цикла. Вложенные циклы могут быть циклами любого типа, в том числе и смешанными. Глубина вложенности в языке C# строго не определена, но, практически, не ограничена (ограничена размером стека). Рассмотрим вложенные циклы for. Внутренний цикл for выполняется для каждого значения переменной внешнего цикла (т.е. для каждой итерации внешнего цикла). Такая схема, как правило, используется для прохода по элементам многомерного прямоугольного массива. Рассмотрим пример:


static void Main(string[] args)
 {
     for (int i = 0; i < 10; i++)
{
    for (int j = 0; j < 10; j++)
    {
     if (j != 9) Console.Write("{0,-4}",(i * j).ToString()); //Вывод элементов строки, кроме последнего
     else Console.Write("{0,-4}\n", (i * j).ToString()); //Вывод последнего элемента строки
    }
   }
}
Результат выполнения:
0    0    0    0    0    0    0    0    0    0   
0    1    2    3    4    5    6    7    8    9   
0    2    4    6    8   10  12  14  16  18 
0    3    6    9   12  15  18  21  24  27 
0    4    8   12  16  20  24  28  32  36 
0    5   10  15  20  25  30  35  40  45 
0    6   12  18  24  30  36  42  48  54 
0    7   14  21  28  35  42  49  56  63 
0    8   16  24  32  40  48  56  64  72 
0    9   18  27  36  45  54  63  72  81 


Задания по теме "Циклические структуры. Цикл for"