Navigation

2.1.5 Entscheidungsoperator

Der Entscheidungsoperator ? : verknüpft 3 Ausdrücke
ausdruck1 ? ausdruck2 : ausdruck3
miteinander und ist die verkürzte Schreibweise einer Zweiwegeentscheidung.

VERBATIM/b215a: 

       max = x > y ? x : y;

steht für

VERBATIM/b215b: 

       if(x > y)
           max = x;
       else 
           max = y; 

Der Entscheidungsoperator erzeugt einen Ausdruck, der selbst wieder in Ausdrücken als Operand genutzt werden kann. Sinnvolle Anwendung z.B. beim Funktionsaufruf in Parameterlisten.

BEISPIELE/b215.c: 

#include <stdio.h>

main()          /* Entscheidungsoperator */
{
    int x = 2 , y = 1, z = 3;

    x += y += z;
    printf(" x = %d ,y = %d ,z = %d \n", x, y, z );
    printf(" x < y ? y : x        => %d\n", x < y ? y : x   );
    printf(" x < y ? ++x : y++    => %d\n", x<y ? ++x : y++ );
    printf(" x = %d ,y = %d ,z = %d \n", x, y, z );
    printf(" z += x<y ? x++ : y++ => %d\n", z+=x<y?x++:y++  );
    printf(" x = %d ,y = %d ,z = %d \n", x, y, z );
}

Navigation