×
Traktatov.net » C++ для «чайников» » Читать онлайн
Страница 36 из 251 Настройки
.


      int n1 = 1 ;

      int n2 = 2 ;

      n1 < n2


«Операторы "больше" и "меньше" внешне очень похожи, и поэтому их легко перепутать. Чтобы этого не случилось, помните, что оператор-стрелочка принимает значение true в том случае, когда из двух сравниваемых значений он указывает на меньшее.»

[Советы]

С помощью операторов > и < можно найти случаи, когда n1 больше или меньше n2, однако при этом игнорируется возможность равенства их значений. Операторы "больше или равно" ( >= ), "меньше или равно" ( <= ), в отличие от только что рассмотренных, учитывают и эту возможность.

Так же широко используются операторы && ( И ) и || ( ИЛИ ). Эти операторы обычно сочетаются с другими логическими операторами:


            /* истинно, если n2 больше n1 и меньше n3 */

            ( n1 < n2 )&&( n2 < n3 ) ;


В качестве ремарки: оператор "больше или равно" можно определить как>[ 8 ]

n1 <= n2 эквивалентно ( n1 < n2 ) || ( n1 == n2 )

______________


>8В качестве ещё одной ремарки: операторы сравнения вообще достаточно взаимозаменяемы. Так, например, ( a == b ) эквивалентно ( ! ( a>b )&&! ( a. — Прим. ред.

_________________

56 стр. Часть 1. Первое знакомство с С++


Хранение логических значений...57

Результат логической операции может быть присвоен переменной типа bool:


            int n1 = 1 ;

            int n2 = 2 ;

            bool b ;

            b = ( n1 == n2 ) ;


Это выражение показывает разницу между операторами присвоения и сравнения. Его можно описать следующими словами: "Сравни содержимое переменных n1 и n2 и сохрани результат сравнения в переменной b".

«Оператор присвоения имеет наиболее низкий приоритет, поэтому оператор сравнения будет выполнен до присвоения. Скобки в этой ситуации излишни, и выражение b = n1 == n2 эквивалентно b = ( n1 == n2 ). Обратите также внимание на различие операторов присвоения и сравнения.»

[Советы]

Вот пример программы, демонстрирующей использование переменной типа bool:


    /*  BoolTest — сравнение данных,  вводимых с клавиатуры, и сохранение результата  в переменной типа bool */

    #include

    #include

    #include

    using namespace std ;

    int main ( int nNumberofArgs , char* pszArgs[ ] )

    {

        setlocale ( LC_ALL , ".1251" ) ; /* печать кириллицы */

        cout << "Использование переменной типа bool\n" ;


        /*  Устанавливаем текстовый формат для вывода логических значений */

        cout.setf( cout.boolalpha ) ;


        /*  Инициализируем аргументы */

        int nArg1 ;

        cout << "Введите значение 1: " ;

        cin >> nArg1 ;


        int nArg2 ;

        cout << " Введите значение 2: " ;

        cin >> nArg2 ;


        bool b ;

        b = nArg1 == nArg2 ;


        cout << "Значение " << nArg1

             << " == "       << nArg2

             << " равно "     << b

             << endl ;


        /*  Пауза для того, чтобы посмотреть на результат работы программы */

        system( "PAUSE" ) ;

        return 0 ;

    } 

Инструкция cout.setf( cout.boolalpha ) ; обеспечивает вывод логического значения в виде строки "true" или "