Циклические и рекурсивные алгоритмы. Операторы циклов for, do, while. В процессе программирования часто возникает необходимость повторять многократно выполнять многократно один и тот же фрагмент программы. В это случае используются операторы циклов.
Простейший из циклов имеет вид:
while (условие)
{
операторы;
}
Такой цикл повторяется многократно до тех пор, пока значение условия – истина. Как только это значение становится ложным, выполнение цикла прекращается. Имеется аналогичный вариант цикла, но с проверкой в конце
Do
{
операторы;
} while (условие);
Если необходимо создать цикл с известным числом повторений, то проще всего использовать следующий оператор:
for( инициализация ; проверка_условия ; коррекция)
{
операторы;
}
В таком цикле сначала выполняется инициализация. Обычно – это присвоение начального значения переменной цикла. Инициализация выполняется только один раз. Далее происходит проверка условия. Если условие верно, то выполняются операторы внутри цикла. После этого выполняется коррекция и повторяется проверка.
Рассмотрим несколько примеров.
int i; float a; for (i=1; i<5; i++) cout << a*i;
При задании условий надо быть очень осторожным, т.к. возможны ложные и бесконечные циклы, например:
а) int i; float a; for (i=1; i<1; i++) cout << a*i; – заданное условие всегда ложно, т.е. будет выполнен только один шаг цикла i=1;
б) int i; float a; for (i=1; i>0; i++) cout << a*i; – заданное условие всегда истинно, поэтому цикл будет бесконечным.
int i=5; while ( i>0 ) {cout << i <<’ ’; --i;}
int i=5; do {cout << i <<’ ’; --i;} while ( i>6 )