Kursinhalt
Einführung in Golang
Einführung in Golang
Logische Operatoren
Eine andere Klasse von Operatoren ist als logische Operatoren bekannt. Im Gegensatz zu anderen Operatoren, die mit numerischen Werten arbeiten, sind logische Operatoren für den Umgang mit booleschen Werten konzipiert. Es gibt drei logische Operatoren:
Operator | Logik |
---|---|
! | NOT |
|| | OR |
&& | AND |
Der NOT (!
) Operator wird verwendet, um einen booleschen Ausdruck zu negieren (invertieren). Hier ist ein einfaches Beispiel, das eine if-Anweisung enthält:
index
package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
Im obigen Code wird die Print
-Anweisung nicht ausgeführt, da die Bedingung standardmäßig false
ist. Wenn wir jedoch einen NOT-Operator in den Ausdruck einfügen, wird er negiert und ist daher gleichbedeutend mit true
:
index
package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
Wir können auch den NICHT-Operator (!
) in komplexeren Fällen verwenden. Allerdings müssen wir die Ausdrücke in Klammern setzen, bevor wir sie negieren. Wenn wir zum Beispiel 3 > 4
negieren wollen, würden wir !(3 > 4)
schreiben:
index
package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
Der ODER-Operator (||
) bewertet zwei Operanden und gibt true
zurück, wenn mindestens einer der Operanden true
ist.
Hinweis
Ein Operand bezieht sich auf einen Wert oder Ausdruck, der als Eingabe für einen Operator in einer Anweisung oder einem Ausdruck verwendet wird. Zum Beispiel sind in dem Ausdruck
1 + 2
die Werte1
und2
Operanden. Im Fall von logischen Operatoren ist ein Operand immer ein boolescher Ausdruck oder Wert.
Hier ist ein Beispiel, das die grundlegende Verwendung von logischen Operatoren veranschaulicht:
index
package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
Die erste Anweisung gibt true
aus, weil einer der Operanden im Ausdruck true || false
true
ist. Im Gegensatz dazu gibt die zweite Anweisung false
aus, da beide Operanden in diesem Ausdruck false
sind. Unten ist die Wahrheitstabelle für die logische ODER-Operation:
Hinweis
Eine Wahrheitstabelle ist eine logische Darstellung, die alle möglichen Kombinationen von Eingaben und deren entsprechenden Ausgabewerten anzeigt.
Eingabe | Ausgabe |
---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Wir können logische ODER-Operatoren verketten, um mehrere Operanden zu kombinieren. In diesem Fall wird der Ausdruck von links nach rechts ausgewertet:
index
package main import "fmt" func main() { fmt.Println(false || false || true || false) }
Die Reihenfolge der Auswertung für den obigen Ausdruck ist wie folgt:
Hinweis
Standardmäßig werden alle logischen Ausdrücke von links nach rechts ausgewertet.
Der logische UND-Operator (&&
) ist dem ODER-Operator (||
) ähnlich, gibt jedoch nur true
zurück, wenn beide Operanden den Wert true
haben. Die Wahrheitstabelle für die logische UND-Operation (&&
) ist unten angegeben:
Eingabe | Ausgabe |
---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Hier ist ein komplexeres Beispiel, das eine praktische Verwendung von logischen Operatoren zeigt. Nehmen Sie sich einen Moment Zeit, um den Code zu untersuchen und zu verstehen, wie er funktioniert:
index
package main import "fmt" func main() { var x int = 99 if (1 <= x && x <= 10 || 90 <= x && x <= 100) { fmt.Printf("The value %d is in the range 1-10 or 90-100", x) } else { fmt.Printf("The value %d is not in the range 1-10 or 90-100", x) } }
Bitte beachten Sie, dass wir im obigen Beispiel mehrere Operatoren und Werte verwenden, um eine komplexere Bedingung zu erstellen. Während der Ausführung wird der Ausdruck basierend auf der Priorität der Operatoren ausgewertet. Operatoren mit hoher Priorität werden zuerst ausgewertet, und es ist wichtig, die Reihenfolge zu verstehen, in der sie verarbeitet werden. Vergleichsoperatoren haben eine höhere Priorität als logische Operatoren.
Unten ist ein Diagramm, das die Prioritätsreihenfolge der logischen Operatoren veranschaulicht:
Das folgende Diagramm veranschaulicht, wie der Ausdruck 1 <= x && x <= 10 || 90 <= x && x <= 100
ausgewertet wird:
Danke für Ihr Feedback!