
- •Операторы циклов
- •Оператор while
- •Void main()
- •Void main( )
- •If(!(a%2)) // !01 при четном числе
- •Void main()
- •Void main()
- •Void main()
- •Оператор do…while
- •Оператор цикла for
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Операторы перехода Оператор безусловного перехода
- •Оператор возврата из функции return
- •Оператор выхода из цикла или переключателя break
- •Оператор выхода из текущей итерации continue
Оператор цикла for
Синтаксис итерационного цикла следующий:
for(инициализация_цикла; выражение_условие; список выражений)
тело_цикла
Оператор начинается с ключевого слова for , после которого в круглых скобках написаны через точку с запятой три выражения.
Инициализация_цикла – последовательность определений, описаний и выражений, разделенных запятыми, которая выполняется один раз перед началом выполнения цикла. Переменные, определенные при инициализации, будут действовать только в пределах цикла.
Выражение_условие – это условие повторения вычисления тела цикла. Тело цикла будет повторно вычисляться до тех пор, пока выражение_условие не станет равным 0 . Выражение_условие может отсутствовать, в этом случае считается, что его значение истинно.
Список выражений вычисляется после каждого вычисления тела цикла
После выполнения инициализации_цикла проверяется выражение_условие . Если выражение_условие истинно (не равно 0 ), вычисляются тело_цикла и после список_выражений . Затем снова проверяется выражение_условие и т.д.
Рис.9 – Блок-схема работы оператора итерационного цикла
Пример 2.21 .. Находим сумму четырех чисел, кратных 10, начиная с 0.
#include <stdio.h>
void main()
{int i, sum=0;
for(i=0; i<4; i++) //i=1, 2, 3, 4
sum+=10*i; // 0 10 30 60 (0+10+20+30)
printf(“sum=%d\n”,sum);
}
На экране получим: sum=60
Пример 2.22 .. Находим сумму трех двоек и сумму трех значений переменной n .
#include <stdio.h>
void main()
{int s1=0,s2=0;
for(int i=0,n=5; n<6,i<3; i++,s1+=2) // s1=2 4 6
s2+=++n; // 6 13 21 (6+7+8)
printf(“s2=%d\n”,s2);
}
На экране получим: s2=21
В этом операторе также можно пользоваться операторами break , continue , return .
Пример 2.23 . Выводим на экран значение переменной i, кроме значения 4, которое пропускается.
#include <stdio.h>
void main()
{int i;
for(i=0; i<6; i++)
{if(i==4) continue; // когда i=4 переходим на начало цикла
printf(“%d ”, i); // 0 1 2 3 5
}
}
На экране получим: 0 1 2 3 5
Пример 2.24 .. Выводим на экран значение переменной i и, если i>5, то выход из цикла.
#include <stdio.h>
void main()
{int i;
for(i=0; i<10; i++)
{if(i>5) break;
printf(“%d”, i); // 1 2 3 4
}
}
На экране получим: 1 2 3 4
Пример 2.25 .. Вводим с клавиатуры пять чисел и подсчитываем их сумму. При вводе числа 5, цикл завершается.
#include <stdio.h>
void main()
{int i, k,sum=0;
for(i=0; i<5; i++)
{scanf(“%d”,&k); //пусть будем вводить 1 2 3 4 6 или 1 2 5
if (k==5) break;
sum+=k; } // 1 3 6 10 16 (1+2+3+4+6=16) или 1 2 (1+2=3)
printf(“sum=%d”,sum);}
На экране получим: sum=16 или sum=3
Любое из трех выражений может быть опущено (в т.ч. и все три). В этом случае получим бесконечный цикл, из которого можно выйти с помощью операторами break , continue , return .
Пример 2.26 . . К начальному значению переменной m добавляется 1, от начального значения переменной k отнимается 1, до тех пор, пока k не равно 0.
#include <stdio.h>