Бьерн Страуструп - Язык программирования С++. Вступление, глава 1
Страница 26. Условные операторы и циклы


 

1.3.4  Условные операторы и циклы

    В С++ есть традиционный набор выбирающих операторов и циклов. Ниже
приводятся примеры операторов if, switch и while.

    В следующем примере показано преобразование дюйма в сантиметр и
обратно. Предполагается, что во входном потоке значение в сантиметрах
завершается символом i, а значение в дюймах - символом c:

          #include <iostream.h>

          int main ()
          {
              const float fac = 2.54;
              float x, in, cm;
              char ch = 0;

              cout << "enter length: ";

              cin >> x;   // ввод числа с плавающей точкой
              cin >> ch   // ввод завершающего символа

              if ( ch == 'i' )
              {      // дюйм
                  in = x;
                  cm = x * fac;
              }
              else if ( ch == 'c' )
              { // сантиметры
                  in = x / fac;
                  cm = x;
              }
              else
                  in = cm = 0;

              cout << in << " in = " << cm << " cm\n";
          }

    Операция >> ("ввести из") используется как оператор ввода; cin
является стандартным входным потоком. Тип операнда, расположенного справа
от операции >>, определяет, какое значение вводится; оно записывается в
этот операнд.

    Оператор switch (переключатель) сравнивает значение с набором
констант.  Проверку в предыдущем примере можно записать так:

          switch ( ch )
          {
          case 'i':
                in = x;
                cm = x * fac;
                break;
          case 'c':
                in = x / fac;
                cm = x;
                break;
         default:
               in = cm = 0;
               break;
        }

    Операторы break используются для выхода из переключателя. Все
константы вариантов должны быть различны. Если сравниваемое значение не
совпадает ни с одной из них, выполняется оператор с меткой default.
Вариант default может и отсутствовать.

    Приведем запись, задающую копирование 10 элементов одного массива в
другой:

         int v1 [ 10 ];
         int v2 [ 10 ];
          // ...
         for ( int i=0; i<10; i++ ) v1 [ i ] = v2 [ i ];

    Словами это можно выразить так: "Начать с i равного нулю, и пока i
меньше 10, копировать i-тый элемент и увеличивать i." Инкремент (++)
переменной целого типа просто сводится к увеличению на 1.

 
« Предыдущая статья   Следующая статья »