ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

4.16. Оператор цикла for

Оператор for – это наиболее общий способ организации цикла. Он имеет следующий формат:

for (выражение 1 ; выражение 2 ; выражение 3) {тело цикла}

Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 – это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.

Схема выполнения оператора for:

1. Вычисляется выражение 1.

2. Вычисляется выражение 2.

3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, затем вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передаётся на оператор, следующий за оператором for.

Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.

Например:

int main()

{
int i,b;

for (i=1; i<10; i++) b="i*i;" ;
}

В этом примере вычисляются квадраты чисел от 1 до 9.

Некоторые варианты использования оператора for повышают его гибкость за счёт возможности использования нескольких переменных, управляющих циклом.

Например:

int main()
{ int t, b; char string[100], temp;
for ( t=0, b=100 ; t< b ; t++, b--)

{

temp=string[t];

string[b]=temp; }
}

В этом примере, реализующем запись строки символов в обратном порядке, для управления циклом используются две переменные t и b. Здесь на месте выражения 1 и выражения 3 используются несколько выражений, записанных через запятую, и выполняемых последовательно.

Другим вариантом использования оператора for является бесконечный цикл. Для организации такого цикла можно использовать пустое условное выражение, а для выхода из цикла обычно используют дополнительное условие и оператор break.

Например:

for (;;)
{
...
... break;
...
}

Так как согласно синтаксису языка С оператор может быть пустым, тело оператора for также может быть пустым. Такая форма оператора может быть использована для организации поиска.

Например:

for (i=0; t[i]<10 ; i++) ;


В данном примере переменная цикла i принимает значение номера первого элемента массива t, значение которого больше 10.

Рассмотрим копирование десяти элементов одного вектора в другой вектор:

for (int i=0; i<10; i++) q[i]=p[i];


это эквивалентно:

int i = 0;

while (i<10) { q[i]=p[i]; i++; }
что более удобочитаемо, поскольку вся информация, управляющая циклом, локализована. При применении операции ++ к целой переменной, к ней просто добавляется единица. Первая часть оператора for не обязательно должна быть описанием, она может быть любым оператором.

Например:

for (int i=0; i<10; i++) q[i]=p[i];

тоже эквивалентно предыдущей записи [10].

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011