double arrow

Оператор цикла с параметрами ( 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<=9; i++) b=i*i;

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

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

Пример:

int main() { int top, bot; char string[100], temp; for ( top=0, bot=100 ; top < bot ; top++, bot--) { temp=string[top]; string[bot]=temp; } return 0; }

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

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

Пример:

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

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

Пример:

for (i=0; t[i]

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

Пример: Найти сумму положительных чисел последовательности.

#include <stdio.h>
voidmain()

{ int a;
int i,n,s;
n=5; s=0;
for(i=1; i<=n; i++)
{ scanf(“%d”,&a);
if(a>0) s+=a;

}
printf("сумма = %d \n",s);

}

Пример: Дано натуральное n, символы S1,..,Sn. Подсчитать наибольшее число букв А, идущих подряд в данной последовательности

символов.

#include<stdio.h>

#include<conio.h>

void main()

{ int I,K,K1,N;

char S;

printf("ВВЕДИТЕ КОЛИЧЕСТВО СИМВОЛОВ\n");

scanf("%d",&N);

K=0; K1=0;

printf("ВВЕДИТЕ СТРОКУ СИМВОЛОВ\n");

for (I=1;I<=N;I++)

{

S=getchar();

if (S=='A') K=K+1; else K=0;

if ((K>1)&&(K>K1)) K1=K;

}

printf("КОЛИЧЕСТВО СТОЯЩИХ ПОДРЯД А = %d",K1);

getch();

}


Сейчас читают про: