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
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!