ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 3) онлайн

Операция логического И

Давайте рассмотрим, каким образом логические операции соединяют булевы вы- ражения в C++. В следующем примере, ADVENAND, логическая операция использу- ется для усложнения приключенческой игры, созданной в программе ADSWITCH. Теперь мы закопаем сокровище в точке с координатами (7, 11) и попробуем заста- вить нашего героя отыскать его.

 

// advenand.cpp

// применение операции логического И

#include <iostream>

using namespace std;

#include <process.h>         // для exit()

#include <conio.h>           // для getche()

int main()

{

  char dir='a';

  int x=10, y=10;

  while ( dir != '\r' )

  {

    cout << "\nВаши координаты: " << x << ", " << y;

    cout << "\nВыберите направление (n,s,e,w): ";

    dir = getche();          // ввод направления

    switch(dir)

    {

      case 'n': y--; break;   // обновление координат

      case 's': y++; break;

      case 'e': x++; break;

      case 'w': x--; break;

    }

    if( x==7 && y==11 )      // если x равно 7 и y равно 11

    {

      cout <<"\nВы нашли сокровище!\n";

      exit(0);               // выход из программы

    }

  }                          //конец switch

  return 0;

}                            //конец main()

 

Ключевым моментом данной программы является выражение if( x==7 && y==11 )

Условие, участвующее в этом выражении, будет истинным только в том случае, когда значение x будет равно 7, а значение у в это же время окажется равным 11. Операция логического И, обозначаемая &&, связывает пару относи- тельных выражений (под относительным выражением понимается выражение, содержащее операции отношения).

Обратите внимание на то, что использование скобок, заключающих относи- тельные выражения, не является обязательным: (( x==7 && y==11 )) // внутренние скобки не обязательны

Это объясняется тем, что операции отношения имеют более высокий прио- ритет, чем логические операции.

Если игрок попадет в точку, где находится сокровище, программа отреагиру- ет на это следующим образом:

Ваши координаты: 7, 10

Выберите направление (n, s, е, w): s

Вы нашли сокровище!

В C++ существуют 3 логические операции:

  Операция «исключающее ИЛИ» в языке C++ отсутствует. Теперь обратимся к примерам использования операций || и !.

 

40