Logische Operatoren in C werden verwendet, um mehrere Bedingungen/Einschränkungen zu kombinieren. Logische Operatoren geben entweder 0 oder 1 zurück. Dies hängt davon ab, ob das Ausdrucksergebnis wahr oder falsch ist. Bei der C-Programmierung zur Entscheidungsfindung verwenden wir logische Operatoren.
Wir haben 3 logische Operatoren in der C-Sprache:
- Logisches UND ( && ) Logisches ODER ( || ) Logisches NICHT ( ! )
Arten von logischen Operatoren
1. Logischer UND-Operator ( && )
Wenn beide Operanden ungleich Null sind, wird die Bedingung wahr. Andernfalls hat das Ergebnis den Wert 0. Der Rückgabetyp des Ergebnisses ist int. Nachfolgend finden Sie die Wahrheitstabelle für den logischen UND-Operator.
| X | UND | X && Y |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
Syntax
(operand_1 && operand_2)>
Beispiel
C
// C program for Logical> // AND Operator> #include> // Driver code> int> main()> {> >int> a = 10, b = 20;> >if> (a>0 && b> 0) {> >printf>(>'Both values are greater than 0
'>);> >}> >else> {> >printf>(>'Both values are less than 0
'>);> >}> >return> 0;> }> |
>
String als int Java umwandeln
>Ausgabe
Both values are greater than 0>
2. Logischer ODER-Operator ( || )
Die Bedingung wird wahr, wenn einer von ihnen ungleich Null ist. Andernfalls wird false zurückgegeben, d. h. 0 als Wert. Nachfolgend finden Sie die Wahrheitstabelle für den logischen ODER-Operator.
| X | UND | X || UND |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
Syntax
(operand_1 || operand_2)>
Beispiel
C
// C program for Logical> // OR Operator> #include> // Driver code> int> main()> {> >int> a = -1, b = 20;> >if> (a>0 || b> 0) {> >printf>(>'Any one of the given value is '> >'greater than 0
'>);> >}> >else> {> >printf>(>'Both values are less than 0
'>);> >}> >return> 0;> }> |
>
>Ausgabe
Any one of the given value is greater than 0>
3. Logischer NOT-Operator ( ! )
Wenn die Bedingung wahr ist, wird sie durch den logischen NOT-Operator falsch gemacht und umgekehrt. Nachfolgend finden Sie die Wahrheitstabelle für den logischen NOT-Operator.
| X | !X |
|---|---|
| 0 | 1 |
| 1 | 0 |
Syntax
! (operand_1 && operand_2)>
Beispiel
C
// C program for Logical> // NOT Operator> #include> // Driver code> int> main()> {> >int> a = 10, b = 20;> >if> (!(a>0 && b> 0)) {> >// condition returned true but> >// logical NOT operator changed> >// it to false> >printf>(>'Both values are greater than 0
'>);> >}> >else> {> >printf>(>'Both values are less than 0
'>);> >}> >return> 0;> }> |
>
>
Logische Kurzschlussoperatoren
Wenn das Ergebnis durch Auswertung des vorangehenden logischen Ausdrucks ohne Auswertung der weiteren Operanden ermittelt werden kann, spricht man von einem Kurzschluss.
Ein Kurzschluss kann darin gesehen werden, dass die Gleichung mehr als einen logischen Operator enthält. Sie können entweder UND, ODER oder beides sein.
1. Kurzschluss im logischen UND-Operator
Der logische UND-Operator gibt genau dann „true“ zurück, wenn alle Operanden „true“ ergeben. Ist der erste Operand falsch, werden die weiteren Operanden nicht ausgewertet. Dies liegt daran, dass selbst wenn die weiteren Operanden „true“ ergeben, die gesamte Bedingung immer noch „false“ zurückgibt.
Beispiel
C++
Reihenfolge nach zufälligem SQL
// C++ Program to illustrate short circuiting in Logical AND> #include> using> namespace> std;> // utility function to check positive> bool> is_positive(>int> number)> {> >if> (number>0)> >return> true>;> >else> >return> false>;> }> // utility function to check if the number is even> bool> is_even(>int> number)> {> >if> (number % 2 == 0)> >return> true>;> >else> >return> false>;> }> // driver code> int> main()> {> >int> x = 10;> >// Both conditions are evaluated> >if> (is_positive(x) && is_even(x)) {> >cout <<>'Both conditions are satisfied.'> << endl;> >}> >else> {> >cout <<>'Conditions not satisfied.'> << endl;> >}> >int> y = -5;> >// The first condition is evaluated and found to be> >// false, so the second condition is not evaluated> >if> (is_positive(y) && is_even(y)) {> >cout <<>'Both conditions are satisfied.'> << endl;> >}> >else> {> >cout <<>'Conditions not satisfied.'> << endl;> >}> >return> 0;> }> |
>
>Ausgabe
Both conditions are satisfied. Conditions not satisfied.>
2. Kurzschluss im logischen ODER-Operator
Der OR-Operator gibt „true“ zurück, wenn mindestens ein Operand „true“ ergibt. Wenn der erste Operand wahr ist, werden die weiteren Operanden nicht ausgewertet. Dies liegt daran, dass die gesamte Bedingung auch dann wahr ist, wenn die Auswertung der weiteren Operanden „falsch“ ergibt.
Beispiel
C++
// C++ program to illustrate the short circuiting in Logical> // OR> #include> using> namespace> std;> // utility function to check positive number> bool> is_positive(>int> number)> {> >if> (number>0)> >return> true>;> >else> >return> false>;> }> // utility function to check if the number is even> bool> is_even(>int> number)> {> >if> (number % 2 == 0)> >return> true>;> >else> >return> false>;> }> // driver code> int> main()> {> >int> x = 8;> >// The first condition is evaluated and found to be> >// true, so the second condition is not evaluated> >if> (is_positive(x) || is_even(x)) {> >cout <<>'At least one condition is satisfied.'> ><< endl;> >}> >else> {> >cout <<>'Conditions not satisfied.'> << endl;> >}> >int> y = -5;> >// The first condition is evaluated and found to be> >// false, so the second condition is evaluated> >if> (is_positive(y) || is_even(y)) {> >cout <<>'At least one condition is satisfied.'> ><< endl;> >}> >else> {> >cout <<>'Conditions not satisfied.'> << endl;> >}> >return> 0;> }> |
>
>Ausgabe
At least one condition is satisfied. Conditions not satisfied.>
FAQs zu logischen Operatoren
Q1. Welchen Vorrang haben logische Operatoren in der Programmierung?
Antwort:
Die Priorität logischer Operatoren ist: NICHT, UND, ODER. Es wird jedoch immer empfohlen, Klammern zu verwenden, um die Reihenfolge der Auswertung deutlich zu machen und Verwirrung zu vermeiden.
Q2. Können logische Operatoren miteinander verkettet werden?
Antwort:
Ja, logische Operatoren können miteinander verkettet werden, um komplexe Bedingungen zu erstellen. Beispielsweise können wir mehrere logische UND- (&&) oder logische ODER-Operatoren (||) in einem einzigen Ausdruck kombinieren, um mehrere Bedingungen gleichzeitig auszuwerten.
Q3. Was wird die Ausgabe des folgenden Codes sein?
C
#include> void> main()> > >int> a = 1, b = 0, c = 5;> >int> d = a && b> |
>
>
Antwort:
6>
Q4. Was wird die Ausgabe des folgenden Codes sein?
C
#include> int> main()> {> >int> i = 1;> >if> (i++ && (i == 1))> >printf>(>'techcodeview.com
'>);> >else> >printf>(>'Coding
'>);> }> |
>
>
Antwort:
Coding>