10.5 Logisches UND (&&) – Logisches ODER (||)
 
Sie haben sicher schon bemerkt, dass es in C viele Operatoren gibt. So ist die Sprache zwar unter Umständen schwerer lesbar, aber auch schneller, vielseitiger und effektiver programmierbar. Sobald Sie die Operatoren kennen gelernt haben, werden sie diese sehr zu schätzen wissen.
Mit dem logischen ODER-Operator (||) werden Operanden so miteinander verknüpft, dass der Ausdruck »wahr« zurückliefert, wenn mindestens einer der Operanden wahr ist.
if( (Bedingung1) || (Bedingung2) )
/* mindestens eine der Bedingungen ist wahr */
else
/* keine Bedingung ist wahr */
Sehen Sie sich dazu den Programmablaufplan des logischen ODER-Operators an:
 Hier klicken, um das Bild zu Vergrößern
Abbildung 10.6
Programmablaufplan des logischen ODER-Operators
Jetzt wird der Operator in dem Programm eingesetzt, dass Sie beim logischen NICHT-Operator zuvor verwendet haben:
/* logic_or.c */
#include <stdio.h>
int main(void) {
int zahl1, zahl2;
printf("Bitte Zahl 1 eingeben: ");
scanf("%d", &zahl1);
printf("Bitte Zahl 2 eingeben: ");
scanf("%d", &zahl2);
if( (!zahl1) || (!zahl2) )
printf("Error: Einer der Werte ist gleich 0!!! \n");
else
printf("%d/%d = %f \n", zahl1, zahl2, (float)zahl1/zahl2);
return 0;
}
Zur if-Konstruktion des Programms:
if( (!zahl1) || (!zahl2) )
In Worten ausgedrückt sähe das etwa folgendermaßen aus: Ist der Wert zahl1 gleich 0 ODER der Wert zahl2 gleich 0, dann ist die Bedingung wahr, und Sie haben eine 0 eingegeben. Sollte die erste Bedingung (!zahl1) schon wahr sein, so wird die zweite Bedingung (!zahl2) gar nicht mehr überprüft, dies können Sie auch am Programmablaufplan erkennen.
Analog verhält es sich mit dem logischen UND-Operator (&&). Das Ergebnis dieser verknüpften Operanden gibt nur dann »wahr« zurück, wenn alle Operanden wahr sind. Der Programmablaufplan des logischen UND-Operators:
 Hier klicken, um das Bild zu Vergrößern
Abbildung 10.7
Programmablaufplan des logischen UND-Operators
Wiederum zur Verdeutlichung ein Programmbeispiel:
/* logic_and.c */
#include <stdio.h>
int main(void) {
int zahl;
printf("Geben Sie einen Wert zwischen 10 und 20 ein: ");
scanf("%d", &zahl);
if( (zahl >= 10) && (zahl <= 20) )
printf("Danke für die Eingabe! \n");
else
printf("Falsche Eingabe! \n");
return 0;
}
In der Zeile
if( (zahl >= 10) && (zahl <= 20) )
prüfen Sie, ob die eingegebene Zahl einen Wert zwischen 10 und 20 besitzt. In Worten: Ist es wahr, dass die Zahl größer oder gleich 10 ist UND die Zahl auch kleiner gleich 20, dann ist die Bedingung wahr.
Natürlich können Sie mit dem &&-Operator und dem ||-Operator weitere Bedingungen miteinander verknüpfen. Allerdings sollten Sie dabei die Lesbarkeit eines solchen Konstrukts im Auge behalten.
|