ein Kapitel zurück                                           ein Kapitel weiter

Den Bedienungsoperator können sie als kürzere 'if - else' - Anweisung sehen. Der Syntax sieht etwa so aus...

<AUSDRUCK> ?<ANWEISUNG1> :<ANWEISUNG2>

Wenn in diesem Fall der AUSDRUCK wahr ist wird die ANWEISUNG1 ausgeführt. Ansonsten wird die ANWEISUNG2 ausgeführt.

Hierzu ein Programmablaufplan...

?: - Operator


Nehmen wir mal wir benötigen von zwei Zahlen den höheren Wert. Dies sieht dann mit dem Bedienungsoperator folgendermaßen aus...

max=(a>b) ?a :b;

...diese Schreibweise ist gleich mit folgender....

if(a>b)
   max=a;

else
   max=b;


Ein kleines Beispiel dazu....

/*Download:bedien1.c*/
#include <stdio.h>

int main()
{
int a=5,b=10;
int max;

max=(a>b) ?a :b;
printf("Der größte Wert ist %d\n",max);
return 0;
}

Die Variable 'int max' bekommt hier den größeren der beiden Werte. Ich glaube das muss ich jetzt nicht mehr Erklären?

Es ist natürlich auch möglich Bedienungsanweisungen zu verschachteln. Als Beispiel soll unser Programm aus drei Zahlen die Größte ausgeben...

/*Download:bedien2.c*/
#include <stdio.h>

int main()
{
int a,b,c,big;
int i=1;

printf("%d. Zahl : ",i++);
scanf("%d",&a);

printf("%d. Zahl : ",i++);
scanf("%d",&b);

printf("%d. Zahl : ",i);
scanf("%d",&c);

printf("Die größte Zahl ist....");

big = (a>b) ? ((a>c) ?a :c) : ((b>c) ?b :c);
printf("..%d\n",big);
return 0;
}

Ich gebe es ja zu das das ein bisschen Spagetti - Code ist und hier eine 'if - else' - Anweisungen übersichtlicher und lesbarer ist. Der Bedienungsoperator wird eigentlich auch mehr oder weniger da Eingesetzt wo es schwierig ist eine 'if - else' - Anweisung reinzubringen. Das ganze wollen wir nun ein bisschen entwirren...

big = (a>b) ? ((a>c) ?a :c) : ((b>c) ?b :c);

Die Variable mit dem Namen 'big' bekommt den Wert von : Sollte a größer sein wie b (a

Oftmals wird der Bedienungsoperator in etwa so eingesetzt.....

/*Download:bedien3.c*/
#include <stdio.h>

int main()
{
int zahl;

printf("Bitte geben sie eine Zahl ein : ");
scanf("%d",&zahl);

printf("Die Zahl die sie eingegeben haben ist ");

(zahl%2) ?printf("ungerade\n") :printf("gerade\n");
return 0;
}

Aufgabe 1:
Schreiben sie folgendes Programm um. Benutzen sie den Bedienungsoperator...

/*Download:bedien4.c*/
#include <stdio.h>

int main()
{
int a,b;

printf("Zahl 1 : ");
scanf("%d",&a);

printf("Zahl 2 : ");
scanf("%d",&b);

if((a) && (b))
printf("%d * %d = %d\n",a,b,a*b);

else
printf("Abbruch: Eine Zahl ist 0\n");
return 0;
}

Hier gehts zur Lösung!

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf