Logiske Operatorer
En anden klasse af operatorer kaldes logiske operatorer. I modsætning til andre operatorer, der arbejder med numeriske værdier, er logiske operatorer designet til at håndtere booleske værdier. Der findes tre logiske operatorer:
| Operator | Logik |
|---|---|
! | NOT |
|| | OR |
&& | AND |
NOT-operatoren (!) bruges til at negere (invertere) et boolesk udtryk. Her er et simpelt eksempel, der inkluderer en if-sætning:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
I ovenstående kode vil Print-udsagnet ikke blive udført, fordi betingelsen som standard er false. Hvis vi derimod inkluderer en NOT-operator i udtrykket, vil det blive negateret og dermed svare til true:
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
Vi kan også bruge NOT (!) operatoren i mere komplekse tilfælde. Dog skal vi omslutte udtrykkene med parenteser, før vi negere dem. For eksempel, hvis vi vil negere 3 > 4, skriver vi !(3 > 4):
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
OR (||) operatoren evaluerer to operander og returnerer true, hvis mindst én af operanderne er true.
Bemærk
En operand refererer til en værdi eller et udtryk, der bruges som input til en operator i en sætning eller et udtryk. For eksempel, i udtrykket
1 + 2, er værdierne1og2operander. I tilfælde af logiske operatorer er en operand altid et boolesk udtryk eller en boolesk værdi.
Her er et eksempel, der illustrerer grundlæggende brug af logiske operatorer:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
Den første sætning giver true som output, fordi en af operanderne i udtrykket true || false er true. Omvendt giver den anden sætning false som output, da begge operander er false i det udtryk. Nedenfor ses sandhedstabellen for den logiske OR-operation:
Bemærk
En sandhedstabel er en logisk repræsentation, der viser alle mulige kombinationer af input og deres tilsvarende outputværdier.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Vi kan kæde logiske OR-operatorer sammen for at kombinere flere operander. I dette tilfælde evalueres udtrykket fra venstre mod højre:
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
Evalueringsrækkefølgen for ovenstående udtryk er som følger:
Bemærk
Som standard evalueres alle logiske udtryk fra venstre mod højre.
Den logiske OG (&&) operator ligner OR (||) operatoren, men returnerer kun true, hvis begge operander har værdien true. Sandhedstabellen for den logiske OG (&&) operation er vist nedenfor:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Her er et mere komplekst eksempel, der demonstrerer en praktisk anvendelse af logiske operatorer. Undersøg koden og forstå, hvordan den fungerer:
index.go
1234567891011package 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) } }
Bemærk, at vi i ovenstående eksempel bruger flere operatorer og værdier for at skabe en mere kompleks betingelse. Under udførelsen evalueres udtrykket baseret på operatorens prioritet. Operatorer med høj prioritet evalueres først, og det er vigtigt at forstå rækkefølgen, hvori de behandles. Sammenligningsoperatorer har højere prioritet end logiske operatorer.
Nedenfor ses et diagram, der illustrerer prioriteringsrækkefølgen for logiske operatorer:
Følgende diagram illustrerer, hvordan udtrykket 1 <= x && x <= 10 || 90 <= x && x <= 100 evalueres:
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 1.96
Logiske Operatorer
Stryg for at vise menuen
En anden klasse af operatorer kaldes logiske operatorer. I modsætning til andre operatorer, der arbejder med numeriske værdier, er logiske operatorer designet til at håndtere booleske værdier. Der findes tre logiske operatorer:
| Operator | Logik |
|---|---|
! | NOT |
|| | OR |
&& | AND |
NOT-operatoren (!) bruges til at negere (invertere) et boolesk udtryk. Her er et simpelt eksempel, der inkluderer en if-sætning:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
I ovenstående kode vil Print-udsagnet ikke blive udført, fordi betingelsen som standard er false. Hvis vi derimod inkluderer en NOT-operator i udtrykket, vil det blive negateret og dermed svare til true:
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
Vi kan også bruge NOT (!) operatoren i mere komplekse tilfælde. Dog skal vi omslutte udtrykkene med parenteser, før vi negere dem. For eksempel, hvis vi vil negere 3 > 4, skriver vi !(3 > 4):
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
OR (||) operatoren evaluerer to operander og returnerer true, hvis mindst én af operanderne er true.
Bemærk
En operand refererer til en værdi eller et udtryk, der bruges som input til en operator i en sætning eller et udtryk. For eksempel, i udtrykket
1 + 2, er værdierne1og2operander. I tilfælde af logiske operatorer er en operand altid et boolesk udtryk eller en boolesk værdi.
Her er et eksempel, der illustrerer grundlæggende brug af logiske operatorer:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
Den første sætning giver true som output, fordi en af operanderne i udtrykket true || false er true. Omvendt giver den anden sætning false som output, da begge operander er false i det udtryk. Nedenfor ses sandhedstabellen for den logiske OR-operation:
Bemærk
En sandhedstabel er en logisk repræsentation, der viser alle mulige kombinationer af input og deres tilsvarende outputværdier.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Vi kan kæde logiske OR-operatorer sammen for at kombinere flere operander. I dette tilfælde evalueres udtrykket fra venstre mod højre:
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
Evalueringsrækkefølgen for ovenstående udtryk er som følger:
Bemærk
Som standard evalueres alle logiske udtryk fra venstre mod højre.
Den logiske OG (&&) operator ligner OR (||) operatoren, men returnerer kun true, hvis begge operander har værdien true. Sandhedstabellen for den logiske OG (&&) operation er vist nedenfor:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Her er et mere komplekst eksempel, der demonstrerer en praktisk anvendelse af logiske operatorer. Undersøg koden og forstå, hvordan den fungerer:
index.go
1234567891011package 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) } }
Bemærk, at vi i ovenstående eksempel bruger flere operatorer og værdier for at skabe en mere kompleks betingelse. Under udførelsen evalueres udtrykket baseret på operatorens prioritet. Operatorer med høj prioritet evalueres først, og det er vigtigt at forstå rækkefølgen, hvori de behandles. Sammenligningsoperatorer har højere prioritet end logiske operatorer.
Nedenfor ses et diagram, der illustrerer prioriteringsrækkefølgen for logiske operatorer:
Følgende diagram illustrerer, hvordan udtrykket 1 <= x && x <= 10 || 90 <= x && x <= 100 evalueres:
Tak for dine kommentarer!