next up previous contents index
Nächste Seite: 3.4 Logische Operatoren Aufwärts: 3. Operatoren Vorherige Seite: 3.2.2 Binäre Operatoren   Inhalt   Index


3.3 Vergleichsoperatoren

Vergleichsoperatoren sind binäre Operatoren. Der Ergebniswert ist immer ein Integerwert, wobei FALSCH/false den Wert 0 liefert und WAHR/true einen Wert ungleich 0 .

Operator     Beschreibung     Beispiel
>     größer     b > a
>=     größer oder gleich     b >= 3.14
<     kleiner     a < b/3
<=     kleiner oder gleich     b*a <= c
==     gleich (! bei Gleitkommazahlen!)     a == b
!=     ungleich (! bei Gleitkommazahlen!)     a != 3.14
(siehe Ex330.cc)

{
 bool  bi,bj;
 int   i;
 
 bi = ( 3 <= 4 );
 bj = ( 3 >  4 );
  
 cout << " 3 <= 4    TRUE  = " << bi << endl;
 cout << " 3 >  4    FALSE = " << bj << endl;

//               if - statement will be defined in Sec. 4
 i = 3;
 if (i <= 4) 
   {
     cout << "\n i less or equal 4 \n\n";
   }
}

Ein typischer Fehler tritt beim Test auf Gleichheit auf, indem statt des Vergleichsoperators == der Zuweisungsoperator = geschrieben wird. Der Compiler akzeptiert beide Quelltexte, eventuell (compilerabhängig) wird beim falschen Code eine Warnung ausgegeben.

{
//           Incorrect Code
 int i;
 
 i = 2;
 if ( i = 3 )              // Assignment i=3 is always true !!
   {
     cout << " BB: i =  " << i << endl;    // i is 3
     i = 0;
   }
 cout << " CC: i = " << i << endl;         // i is always 0 !!
}

Im inkorrekten Code tritt der unerwünschte Nebeneffekt auf, daß der Wert der Variablen i im Test geändert wird, während folgender, korrekter Code keinerlei Nebeneffekte aufweist.

{
//           Correct Code
 int i;
 
 i = 2;
 if ( i == 3 )                           // Correct comparison
   {
     cout << " BB: i =  " << i << endl;  // i always remains 2
     i = 0;
   }
 cout << " CC: i = " << i << endl;       // i is still 2 !!
}


next up previous contents index
Nächste Seite: 3.4 Logische Operatoren Aufwärts: 3. Operatoren Vorherige Seite: 3.2.2 Binäre Operatoren   Inhalt   Index
Gundolf Haase 2004-01-15