C++ Tutorial/Operators statements/relational and logical operators — различия между версиями

Материал из C\C++ эксперт
Перейти к: навигация, поиск
м (1 версия: Импорт контента...)
 
м (1 версия: Импорт контента...)
 
(нет различий)

Текущая версия на 13:30, 25 мая 2010

A Demonstration of Branching Based on Relational Operators

<source lang="cpp">#include <iostream> int main() {

  using std::cout;
  using std::cin;
  int i, i2;
  cout << "Enter the score for the Mets: ";
  cin >> i;
  cout << "\nEnter the score for the Yankees: ";
  cin >> i2;
  if (i > i2)
     cout << "Go i!\n";
  if (i < i2)
  {
     cout << "Go i2!\n";
  }
  if (i == i2)
  {
     cout << "A tie?\n";
     cout << "Give me the real score for the i2: ";
     cin >> i2;
     if (i > i2)
        cout << "i";
     if (i2 > i)
        cout << "i2";
     if (i2 == i)
        cout << "tie!";
  }
  return 0;

}</source>

Create an XOR using the C++ logical operators.

<source lang="cpp">#include <iostream>

  1. include <cmath>

using namespace std;

int main() {

 bool p, q; 

 p = true; 
 q = true; 

 cout << p << " XOR " << q << " is " << 
   ( (p || q) && !(p && q) ) << "\n"; 
  

 p = false; 
 q = true; 

 cout << p << " XOR " << q << " is " << 
   ( (p || q) && !(p && q) ) << "\n"; 
  

 p = true; 
 q = false; 

 cout << p << " XOR " << q << " is " << 
   ( (p || q) && !(p && q) ) << "\n"; 
  

 p = false; 
 q = false; 

 cout << p << " XOR " << q << " is " << 
   ( (p || q) && !(p && q) ) << "\n"; 
  

 return 0; 

}</source>

1 XOR 1 is 0
0 XOR 1 is 1
1 XOR 0 is 1
0 XOR 0 is 0

Logical operator keywords: and, or, not, not_eq

<source lang="cpp">#include <iostream> using std::boolalpha; using std::cout; using std::endl; int main() {

  bool a = true;
  bool b = false;
  int c = 2;
  int d = 3;
  cout << boolalpha;
  cout << "a = " << a << "; b = " << b
     << "; c = " << c << "; d = " << d;
  cout << "\n\nLogical operator keywords:";
  cout << "\n   a and a: " << ( a and a );
  cout << "\n   a and b: " << ( a and b );
  cout << "\n    a or a: " << ( a or a );
  cout << "\n    a or b: " << ( a or b );
  cout << "\n     not a: " << ( not a );
  cout << "\n     not b: " << ( not b );
  cout << "\na not_eq b: " << ( a not_eq b );
  return 0;

}</source>

a = true; b = false; c = 2; d = 3
Logical operator keywords:
   a and a: true
   a and b: false
    a or a: true
    a or b: true
     not a: false
     not b: true
a not_eq b: true

Output the results of several variable comparisons.

<source lang="cpp">#include <iostream> using namespace std; int main(void) {

  int a = 4, b = 5;
  cout << a << " > " <<  b << " is " << (a > b) << endl;
  cout << a << " >= " <<  b << " is " << (a >= b) << endl;
  cout << a << " == " <<  b << " is " << (a == b) << endl;
  cout << a << " <= " <<  b << " is " << (a <= b) << endl;
  cout << a << " < " <<  b << " is " << (a < b) << endl;
  return 0;

}</source>

The relational and logical operators

<source lang="cpp">#include <iostream> using namespace std;

int main() {

 int i, j; 
 bool b1, b2; 

 i = 10; 
 j = 11; 
 if(i < j) cout << "i < j\n"; 
 if(i <= j) cout << "i <= j\n"; 
 if(i != j) cout << "i != j\n"; 
 if(i == j) cout << "this won"t execute\n"; 
 if(i >= j) cout << "this won"t execute\n"; 
 if(i > j) cout << "this won"t execute\n"; 

 b1 = true; 
 b2 = false; 
 if(b1 && b2) cout << "this won"t execute\n"; 
 if(!(b1 && b2)) cout << "!(b1 && b2) is true\n"; 
 if(b1 || b2) cout << "b1 || b2 is true\n"; 

 return 0; 

}</source>

i < j
i <= j
i != j
!(b1 && b2) is true
b1 || b2 is true

Use And operator to connect two boolean expressions

<source lang="cpp">#include <iostream> int main() {

   int i1, i2;
   i1 = 4;
   i2 = 2;    
   if ((i1 != 0) && (i2 != 0))
       std::cout << "Both are not zero #1\n";
   return (0);

}</source>

Both are not zero #1