Цикл с параметром – цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной последовательность операторов цикла выполняется один раз.
Оператор цикла for – это наиболее общий способ организации цикла. Он имеет следующий синтаксис:
for (выражение1; выражение-условие; выражение3)
тело_цикла;
выражение1 – выражение инициализации, которое определяет действия, выполняемые до начала цикла, т.е. задает начальные условия для цикла. Оно выполняется один раз в начале цикла.
выражение-условие – это выражение, определяющее условие, при котором тело цикла будет выполняться. Проверка условия производится перед каждым возможным выполнением цикла. Оно обычно логическое или арифметическое.
выражение2 – выражение итерации, которое определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.
Схема выполнения оператора for следующая:
● вычисляется выражение1;
● вычисляется выражение-условие;
● если значение выражения-условия отлично от нуля, выполняется тело цикла, вычисляется выражение3 и осуществляется переход к пункту 2 (т.е. вычисляется выражение-условие и все повторяется…). Если значение выражения-условия равно нулю, то управление передается на оператор, следующий за оператором for.
Важно отметить, что проверка условия выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если выражение-условие при входе в цикл будет равно нулю.
Пример 1. Вычисления квадратов чисел от 1 до 9.
#include <stdio.h>
void main() {
int i, b;
for ( i=1; i<10; i++ ) {
b=i*i;
printf("\n %2d в квадрате = %3d", i, b);
}
}
Примеры использования цикла for.
1) for (n=10; n>0; n--) /*уменьшение параметра n*/
{
операторы;
}
2) for (n=2; n>60; n+=13) /*изменение шага корректировки*/
{
операторы;
}
3) for (num=1; num*num*num<216; num++)
/*проверка условия отличного от того, которое налагается
на число итераций*/
{
операторы;
}
4) for (d=100.0; d<150.0; d*=1.1)
/*коррекция с помощью умножения*/
{
операторы;
}
5) for (x=1; y<=75; y=5*(x++)+10)
/*коррекция с помощью арифметического выражения*/
{
операторы;
}
6) for (x=1, y=0; x<10; x++;y+=x);
/*использование нескольких корректирующих выражений, тело цикла
отсутствует*/
Использование нескольких переменных (перечисляются через запятую), управляющих циклом for повышают его гибкость.
Бесконечный цикл – это цикл, написанный таким образом, что условие выхода из него никогда не выполняется. О программе, вошедшей в бесконечный цикл, иногда говорят, что она зациклилась. Для организации такого цикла можно использовать пустое условное выражение, а для выхода из цикла обычно используют дополнительное условие и оператор break.
for ( ; ; )
{ ...
... break;
...
}
Пример 2. Программа для печати фрагмента таблицы ASCII (от 32-го символа до 126-го).
#include <stdio.h>
void main() {
int number;
char character;
for (number = 32; number <= 126; number = number + 1 ) {