Условные операторы языка программирования C++, страница 4

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. В организованном далее цикле от единицы до введенного числа производится собственно вычисление факториала.

          2.2 Циклы while

          Оператор цикла 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;

   } 

}