Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
42
Добавлен:
16.02.2016
Размер:
558.59 Кб
Скачать

Int main()

{

int Sum = 0;

for(int i=10; i<20; i++)

Sum += i;

cout « "Сумма составит: " « Sum;

return 0;

}

Как видно из примера, при инициализации был объявлен счетчик i, с начальным значением 10, увеличивающийся с каждой итерацией на единицу. Тело цикла в данном случае состоит из одного единственного оператора, добавляющего к результируюшей величине Sum значение счетчика i в данной итерации.

Следующий фрагмент иллюстрирует применение оператора запятая" в цикле for:

for(int i=10, j=2; i<20; i++, j=i+17)

{……

}

Таким обратом, первоначально инициализируются переменные i и j, а затем при каждой из 10-ти итераций будет вычисляться новое значение переменной j.

Теперь введем в программу задержку по времени на 500 циклов с использованием оператора for. В каждом новом цикле будет уменьшаться на единицу значение целочисленной переменной dl и выполняться пустой оператор до тех пор, пока переменная delay не примет нулевое значение.

#include <iostream.h>

Int.Main ()

{

int dl;

// Начало вычислений

...

// Задержка 500 циклов

for(dl=500; dl>0; dl--);

// Пустой оператор, ничего делать

// не надо!

// Продолжение вычислений

...

return 0;

}

Пример вычисления факториала демонстрирует использование в качестве тела цикла блочного оператора, хотя приведенный текст не является самым рациональным способом вычисления факториала (в дальнейшем будет рассмотрена более эффективная реализация).

#include <iostream.h>

Int 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;

}

return 0;

}

В примере пользователю предлагается ввести целое число от 0 до 33. В организованном далее цикле от единицы до введенного числа производится собственно вычисление факториала.

Циклы while

Оператор цикла while выполняет оператор или блок операторов до тех пор, пока проверочное условие (выражение) остается истинным. Он имеет следующий синтаксис:

while(выражение)

оператор или_блок операторов // тело цикла

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

Довольно часто в качестве выражения используется оператор присваивания. Так как при этом возвращается некоторое число, в операторе while фактически производится сравнение полученного значения с нулем (следует напомнить, что ноль — эквивалент ложного значения) с дальнейшим принятием решения о выходе из цикла либо его продолжении

Как и для оператора for, если в цикле должны синхронно изменяться несколько переменных, которые зависят от переменной цикла, вычисление их значений можно поместить в проверочное выражение оператора while, воспользовавшись оператором "запятая".

Приведенный ниже пример показывает использование оператора цикла while для представления десятичного числа в двоичном виде.

#include <iostream.h>

Соседние файлы в папке ЛекцииКарасева