Kurze Abfragen mit dem ?: - Operator

Eine hübsche Sache ist der ?:-Operator. Er funktioniert genauso wie eine if-Abfrage, macht uns allerdings bei einfachen Dingen die Sache leichter. Während if-Abfragen den Fluß des Programms steuern und klären, welcher Programmteil ausgeführt wird, erfüllt der ?:-Operator die selbe Funktion in Zuweisungen, bzw. bei der Auswertung von Ausdrücken. Es wird eine Bedingung wie bei if() in Klammern formuliert, das ? leitet den Teil ein, der ausgeführt wird sofern die Bedingung wahr ist, der : den Teil, der ausgeführt wird, wenn die Bedingung falsch ist. Komplizierte Rede, einfacher Gebrauch:

#include "stdio.h"
 
void main(void)
{
  long x, y = 4;
 
  x = ( y == 4 ) ? 5 : 6;
 
  printf("x ist : %d\n",x);
}

x nimmt abhängig vom Wert der Variablen y unterschiedliche Werte an. Wenn die Variable y gleich 4 ist, so wird x mit 5 belegt, ist y ungleich 4, so wird x mit 6 belegt. Der entsprechende Sourcecode mittels einer if()-Anweisung wäre selbst eng zusammengeschrieben deutlich länger:

#include "stdio.h"
 
void main(void)
{
  long x, y = 4;
 
  if( y == 4 ) x = 5;
  else x = 6;
 
  printf("x ist : %d\n",x);
}

Selbstverständlich können Sie den ?:-Operator auch verschachteln. Achten Sie aber darauf, dass höchstens einfache Ausdrücke hintereinander stehen. Komplexere Dinge, sollten Sie gut formatieren, um die Lesbarkeit des Sourcecodes nicht einzuschränken. Ein Beispiel für die Anwendung des ?:-Operators, sowie eine Formatierungsmöglichkeit finden Sie in einem späteren Kapitel. Hierfür sollten Sie sich jedoch zunächst das Kapitel Bitoperatoren angesehen haben.


späteren Kapitel: Link setzen, sobald vorhanden