cout<< "Сумма составит: " << Sum;
}
Как видно из примера, при инициализации был объявлен счётчик i, с начальным значением 10, увеличивающийся с каждой итерацией на единицу. Тело цикла в данном случае состоит из одного единственного оператора, добавляющего к результирующей величине Sum значение счетчика i в данной итерации.
Следующий фрагмент иллюстрирует применение оператора запятая" в цикле
for:
for(int i=10, j=2; i<20; i++, j=i+17)
{
…
}
Таким образом, первоначально инициализируются переменные х и j, а затем при каждой из 10-ти итерации будет вычисляться новое значение переменной j.
Теперь введем в программу задержку по времени на 500 циклов с использованием оператора for. В каждом новом цикле будет уменьшаться на единицу значение целочисленной переменной delay и выполняться пустой оператор до тех пор, пока переменная delay не примет нулевое значение.
#include <iostream.h>
void main ()
{
intdelay;
// Начало вычислений
...
// Задержка 500 циклов
for(delay=500; delay>0; delay—);
// Пустой оператор, ничего делать
// не надо!
// Продолжение вычислений
...
}
Пример вычисления факториала демонстрирует использование в качестве тела цикла блочного оператора, хотя приведенный текст не является самым рациональным способом вычисления факториала (в дальнейшем будет рассмотрена более эффективная реализация).
include <iostream.h>
void main()
{
int a = 0;
unsigned long fact = 1;
cout<< “Введите целое число: “;
cin>> a;
if((a >= 0) && (a < 33))
{
for(int i=l; i<=a; i++)
{
if(a != 0)
fact *= i;
else
fact = 1;
}
cout << fact << ‘\n’;
fact = 1;
}
}
В примере пользователю предлагается ввести целое число от 0 до 33. В организованном далее цикле от единицы до введенного числа производится собственно вычисление факториала.
Оператор цикла while выполняет оператор или блок до тех пор, пока проверочное условие (выражение) остается истинным. Он имеет следующий синтаксис:
while(выражение)
оператор_или_блок
Если выражение представляет собой константу с истинным значением, тело цикла будет выполняться всегда и, следовательно, мы имеем дело с бесконечным оператором. Цикл также окажется бесконечным. когда условие, определенное в выражении изначально, истинно и нигде далее в теле цикла не изменяется. Если же проверочное условие возвращает ложное значение, осуществится выход изцикла и тело оператора while будет пропущено.
Довольно часто в качестве выражения используется оператор присваивания. Так как при этом возвращается некоторое число, в операторе while фактически производится сравнение полученного значения с нулем (следует напомнить, что ноль - эквивалент ложного значения) с дальнейшим принятием решения о выходе из цикла либо его продолжении.
Как и для оператора for, если в цикле должны синхронно изменяться несколько переменных, которые зависят от переменной цикла, вычисление их значений можно поместить в проверочное выражение оператора while, воспользовавшись оператором "запятая".
Приведенный ниже пример показывает использование оператора цикла while для представления десятичного числа в двоичном виде.
#include <iostream.h>
void main ()
{
int counter = 4;
short dec;
while(1)// Бесконечный цикл
{
cout<< “Введите десятичное число “;
cout<< “от 0 до 15:”;
cin>> dec;
cout<< “Двоичное представление”;
cout<< “ числа “ <<dec<<“: “;
while(counter)
{
if(dec & 8)
cout << 1;
else
cout << 0;
dec = dec << 1;
counter--;
}
cout << ‘\n’; counter = 4;
}
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.