Цикл for обеспечивает циклическое повторение некоторого оператора или группы операторов заданное число раз. Это наиболее общий способ организации цикла.
Общая форма записи такова:
for (инициализация счетчика; условие; инкремент)
{
блок_операторов; //тело цикла
}
Инициализация счетчика - Устанавливает переменную управления циклом (счётчик) равной ее начальному значению.
Условие - Оператор отношения, сравнивающий значение переменной цикла с ее конечным
Значением.
Инкремент - Инкрементирует (или декрементирует) значение переменной цикла
Под инкрементом (++) понимается операция увеличения счётчика на 1.
Под декрементом (--) понимается операция уменьшения счётчика на 1.
- Сначала выполняется инициализация переменной цикла
- Проверяется условие продолжения цикла
- Если условие истинно (ненулевое значение), то выполняется тело цикла
- После завершения тела цикла выполняется изменение переменной цикла (инкремент/ декремент)
- Проверяется условие продолжения цикла
- …..
- Если условие возвращает false (нулевое значение) – цикл прерывается и управление передается оператору, расположенному за структурой for.
Пример1
#include <stdio.h>
#include <conio.h>
void main()
{
int x=1; // число
int y; //квадрат числа
int i; // счетчик циклов
printf(" Number\tSqure\n");
for (i=1;i<=10; i++) // инкремент for (int i=1;i<=10; i++)
{ y=x*x;
printf("%3i\t%4i\n",x,y); // \t - табуляция
x+=2; // x=x+2
}
getch();
}
----------------------------------------------------
Пример 2
float x1, x2, dx, x;
scanf("%f%f%f",&x1,&x2,&dx);
for (x=x1; x<=x2; x+=dx) //приращение
printf("%5.2f %5.2f\n",x,x*x+1);
Начальное и конечное значения, а также приращение могут быть как целыми так и действительными числами |
Пример 3
// использование операции “,”
a)
int x,y;
for (x=0,y=10;x<=10;x++,y--)
printf("%d %d\n", x, y);
b)
int a, b, top, bot;
for ( top=0,bot=20 ; top < bot ; top++, bot--)
{ a=top; b=bot;
printf("a=%d b=%d\n",a,b);
}
Пример 4
// условие не обязательно должно включать переменную цикла
int x;
for (x=0; !kbhit();x++) // пока не нажата любая клавиша цикл
//продолжается
printf("%d\n",x); // kbhit в библиотеке <conio.h>
Пример 5
// отсутствие элементов в определении цикла
// отсутствие инкремента
char ch;
for (ch=' '; ch !='y';) // пока не введен символ “y”
ch=getch();
___________________________________________
Пример 6
//Пример бесконечного цикла: ожидание ввода нужного символа
unsigned char ch;
for (;;)
{
ch=getch(); // прочитать символ
if (ch==’Q’) break; //проверка символа,
}
Пример 7
Цикл временной задержки
for (x=0; x<1000; x++);