
Циклы

![]()
Цикл с предусловием
while (P) оператор
Цикл с постусловием
do
оператор
while (P);
false
Универсальный цикл
for(выражение1; выражение2; выражение3) оператор
Схема выполнения универсального цикла:
1. вычисляется выражение1, которое играет роль начальной уста- новки параметров цикла
2. вычисляется выражение2, которое играет роль условия повтора цикла. Если значение этого выражения false, выполнение цикла завершается, в противном случае переходим к шагу 3.
3. Выполняется оператор, образующий тело цикла
4. вычисляется выражение3, которое играет роль модификатора параметров цикла
5. переход на шаг 2
Любое из выражений в заголовке цикла может отсутствовать, при этом разделяющие их скобки должны сохраняться. Отсутствующее вы- ражение2 означает, что условие повтора цикла имеет значение true.
Примеры использования циклов
int i=0; //Счетчик while (i<2)
{
Console.WriteLine (“Снег”); //1
|
i++; |
//2 |
|||
|
} |
|
|
|
|
|
Шаг |
i в начале шага |
|
Экран |
i в конце шага |
|
1 |
0 |
Снег |
|
1 |
|
2 |
1 |
Снег |
|
2 |
|
3 |
2 |
|
|
|
Если не образовать блок операторов, заключив строки 1 b 2 в фи- гурные скобки, то цикл будет выполняться до бесконечности, так как изменение значения счетчика не будет.
int i=0; do
{
Console.WriteLine (“Снег”); i++;
}
while (i<2);
Шаг i в начале шага Экран i в конце шага
1 0 Снег 1
2 1 Снег 2
int i;
for (i=0;i<2;i++) Console.WriteLine (“Снег”);
|
Шаг |
i в начале шага |
Экран |
i в конце шага |
|
1 |
0 Снег |
|
1 |
|
2 |
1 Снег |
|
2 |
|
3 |
2 |
|
|
for (;;)
Console.WriteLine (“Снег”);.//Бесконечный вывод этого сообщения
Выражение инициализации может содержать объявление локальных переменных. Локальные переменные, объявленные в заголовке цикла, видны только внутри цикла.
Выражение инициализации может содержать несколько выражений, разделенных “,”, а объявлений – не более одного
Пример
Вычислить сумму n элементов следующего ряда. Сумму выводить после прибавления каждого слагаемого.
N
S=∑ i/(i2+1) = 1/2 + 2/5 + 3/10 + … + N/N2+1
i=1
int N;
string str; // рабочая строка для вывода на экран
int i;
double s; // переменная, в которой будет накапливается сумма
N=5;
for (i=1, s=0; i<=N; i++, Console.WriteLine(str))
{
s+=(double)i/(i*i+1.0); str=s.ToString();
}
Второй вариант решения задачи
int N; string str; double s; N=5; s=0;
for (int i=0; i<=N; i++, Console.WriteLine(str))
{
s+=(double)i/(i*i+1.0); str=s.ToString();\
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.