<< Предыдущая Оглавление Следующая >>


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

Работа оператора цикла for подобна оператору while с той лишь разницей, что оператор for подразумевает изменение значения некоторой переменной и проверки ее на истинность. Работа данного оператора продолжается до тех пор, пока истинно условие цикла. Синтаксис оператора for следующий:

for(<инициализация счетчика>;<условие>;<изменение значения счетчика>)
{
<тело цикла>
}

Рассмотрим особенность реализации данного оператора на примере вывода таблицы кодов ASCII символов.

char ch;
for(ch = ‘a’; ch <= ‘z’; ch++)
printf(“Значение ASCII для %c - %d.\n”,ch,ch);

В данном примере в качестве счетчика цикла выступает переменная ch, которая инициализируется символом ‘a’. Это означает, что в переменную ch заносится число 97 – код символа ‘a’. Именно так символы представляются в памяти компьютера. Код символа ‘z’ – 122, и все малые буквы латинского алфавита имеют коды в диапазоне [97; 122]. Поэтому, увеличивая значение ch на единицу, получаем код следующей буквы, которая выводится с помощью функции printf(). Учитывая все вышесказанное, этот же пример можно записать следующим образом:

for(char ch = 97; ch <= 122; ch++)
printf(“Значение ASCII для %c - %d.\n”,ch,ch);

Здесь следует отметить, что переменная ch объявлена внутри оператора for. Это особенность языка С++ - возможность объявлять переменные в любом месте программы.

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

int line_cnt = 1;
double debet;
for(debet = 100.0; debet < 150.0; debet = debet*1.1, line_cnt++)
printf(“%d. Ваш долг теперь равен %.2f.\n”,line_cnt, debet);

Следующий фрагмент программы демонстрирует возможность программирования сложного условия внутри цикла.

int exit = 1;
for(int num = 0;num < 100 && !exit; num += 1)
{
scanf(“%d”,&mov);
if(mov == 0) exit = 0;
printf(“Произведение num*mov = %d.\n”,num*mov);
}

Оператор for с одним условием:

int i=0;
for(;i < 100;) i++;

и без условия

int i=0;
for(;;;) {i++; if(i > 100) break;}

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


<< Предыдущая Оглавление Следующая >>