Logiske Operatorer
En annen klasse av operatorer kalles logiske operatorer. I motsetning til andre operatorer som arbeider med numeriske verdier, er logiske operatorer laget for å håndtere boolske verdier. Det finnes tre logiske operatorer:
| Operator | Logikk |
|---|---|
! | IKKE |
|| | ELLER |
&& | OG |
Operatoren NOT (!) brukes til å nekte (invertere) et boolsk uttrykk. Her er et enkelt eksempel som inkluderer en if-setning:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
I koden ovenfor vil ikke Print-setningen bli utført fordi betingelsen er false som standard. Hvis vi derimot inkluderer en IKKE-operator i uttrykket, vil det bli negert og dermed tilsvare true:
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
Vi kan også bruke IKKE-operatoren (!) i mer komplekse tilfeller. Det er imidlertid nødvendig å omslutte uttrykkene med parenteser før de negeres. For eksempel, hvis vi ønsker å nekte 3 > 4, skriver vi !(3 > 4):
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
ELLER-operatoren (||) evaluerer to operander og returnerer true hvis minst én av operandene er true.
Merk
En operand refererer til en verdi eller et uttrykk som brukes som input for en operator i en setning eller et uttrykk. For eksempel, i uttrykket
1 + 2, er verdiene1og2operander. Når det gjelder logiske operatorer, er en operand alltid et boolsk uttrykk eller en boolsk verdi.
Her er et eksempel som illustrerer grunnleggende bruk av logiske operatorer:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
Den første utskriften viser true fordi én av operandene i uttrykket true || false er true. Derimot viser den andre utskriften false siden begge operandene er false i det uttrykket. Nedenfor vises sannhetstabellen for den logiske OR-operasjonen:
Merk
En sannhetstabell er en logisk fremstilling som viser alle mulige kombinasjoner av inngangsverdier og deres tilhørende utgangsverdier.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Vi kan kjede sammen logiske OR-operatører for å kombinere flere operander. I dette tilfellet evalueres uttrykket fra venstre mot høyre:
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
Rekkefølgen for evaluering av uttrykket ovenfor er som følger:
Merk
Som standard evalueres alle logiske uttrykk fra venstre mot høyre.
Den logiske OG-operatoren (&&) ligner på ELLER-operatoren (||), men returnerer true kun hvis begge operandene har verdien true. Sannhetstabellen for den logiske OG-operatoren (&&) vises nedenfor:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Her er et mer komplekst eksempel som demonstrerer en praktisk bruk av logiske operatorer. Ta deg tid til å undersøke 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) } }
Vær oppmerksom på at i eksempelet ovenfor bruker vi flere operatorer og verdier for å lage en mer kompleks betingelse. Under kjøring evalueres uttrykket basert på operatorens prioritet. Operatorer med høy prioritet evalueres først, og det er viktig å forstå rekkefølgen de behandles i. Sammenligningsoperatorer har høyere prioritet enn logiske operatorer.
Nedenfor er et diagram som illustrerer prioriteringsrekkefølgen for logiske operatorer:
Følgende diagram illustrerer hvordan uttrykket 1 <= x && x <= 10 || 90 <= x && x <= 100 evalueres:
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain the difference between the AND and OR logical operators?
What does operator precedence mean in logical expressions?
Can you give more examples of using logical operators in code?
Awesome!
Completion rate improved to 1.96
Logiske Operatorer
Sveip for å vise menyen
En annen klasse av operatorer kalles logiske operatorer. I motsetning til andre operatorer som arbeider med numeriske verdier, er logiske operatorer laget for å håndtere boolske verdier. Det finnes tre logiske operatorer:
| Operator | Logikk |
|---|---|
! | IKKE |
|| | ELLER |
&& | OG |
Operatoren NOT (!) brukes til å nekte (invertere) et boolsk uttrykk. Her er et enkelt eksempel som inkluderer en if-setning:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
I koden ovenfor vil ikke Print-setningen bli utført fordi betingelsen er false som standard. Hvis vi derimot inkluderer en IKKE-operator i uttrykket, vil det bli negert og dermed tilsvare true:
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
Vi kan også bruke IKKE-operatoren (!) i mer komplekse tilfeller. Det er imidlertid nødvendig å omslutte uttrykkene med parenteser før de negeres. For eksempel, hvis vi ønsker å nekte 3 > 4, skriver vi !(3 > 4):
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
ELLER-operatoren (||) evaluerer to operander og returnerer true hvis minst én av operandene er true.
Merk
En operand refererer til en verdi eller et uttrykk som brukes som input for en operator i en setning eller et uttrykk. For eksempel, i uttrykket
1 + 2, er verdiene1og2operander. Når det gjelder logiske operatorer, er en operand alltid et boolsk uttrykk eller en boolsk verdi.
Her er et eksempel som illustrerer grunnleggende bruk av logiske operatorer:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
Den første utskriften viser true fordi én av operandene i uttrykket true || false er true. Derimot viser den andre utskriften false siden begge operandene er false i det uttrykket. Nedenfor vises sannhetstabellen for den logiske OR-operasjonen:
Merk
En sannhetstabell er en logisk fremstilling som viser alle mulige kombinasjoner av inngangsverdier og deres tilhørende utgangsverdier.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Vi kan kjede sammen logiske OR-operatører for å kombinere flere operander. I dette tilfellet evalueres uttrykket fra venstre mot høyre:
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
Rekkefølgen for evaluering av uttrykket ovenfor er som følger:
Merk
Som standard evalueres alle logiske uttrykk fra venstre mot høyre.
Den logiske OG-operatoren (&&) ligner på ELLER-operatoren (||), men returnerer true kun hvis begge operandene har verdien true. Sannhetstabellen for den logiske OG-operatoren (&&) vises nedenfor:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Her er et mer komplekst eksempel som demonstrerer en praktisk bruk av logiske operatorer. Ta deg tid til å undersøke 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) } }
Vær oppmerksom på at i eksempelet ovenfor bruker vi flere operatorer og verdier for å lage en mer kompleks betingelse. Under kjøring evalueres uttrykket basert på operatorens prioritet. Operatorer med høy prioritet evalueres først, og det er viktig å forstå rekkefølgen de behandles i. Sammenligningsoperatorer har høyere prioritet enn logiske operatorer.
Nedenfor er et diagram som illustrerer prioriteringsrekkefølgen for logiske operatorer:
Følgende diagram illustrerer hvordan uttrykket 1 <= x && x <= 10 || 90 <= x && x <= 100 evalueres:
Takk for tilbakemeldingene dine!