Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Logiske Operatorer | Kontrollstrukturer
Introduksjon til Golang

bookLogiske 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:

OperatorLogikk
!IKKE
||ELLER
&&OG

Operatoren NOT (!) brukes til å nekte (invertere) et boolsk uttrykk. Her er et enkelt eksempel som inkluderer en if-setning:

index.go

index.go

copy
12345678
package 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

index.go

copy
12345678
package 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

index.go

copy
12345678
package 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 verdiene 1 og 2 operander. 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

index.go

copy
1234567
package 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.

InputOutput
true || truetrue
true || falsetrue
false || truetrue
false || falsefalse

Vi kan kjede sammen logiske OR-operatører for å kombinere flere operander. I dette tilfellet evalueres uttrykket fra venstre mot høyre:

index.go

index.go

copy
123456
package 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:

InputOutput
true && truetrue
true && falsefalse
false && truefalse
false && falsefalse

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

index.go

copy
1234567891011
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) } }

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:

question mark

Hvilke av følgende uttrykk kan vi bruke i if-setningen for å sjekke om en figur er et kvadrat basert på width og height?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

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

bookLogiske 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:

OperatorLogikk
!IKKE
||ELLER
&&OG

Operatoren NOT (!) brukes til å nekte (invertere) et boolsk uttrykk. Her er et enkelt eksempel som inkluderer en if-setning:

index.go

index.go

copy
12345678
package 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

index.go

copy
12345678
package 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

index.go

copy
12345678
package 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 verdiene 1 og 2 operander. 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

index.go

copy
1234567
package 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.

InputOutput
true || truetrue
true || falsetrue
false || truetrue
false || falsefalse

Vi kan kjede sammen logiske OR-operatører for å kombinere flere operander. I dette tilfellet evalueres uttrykket fra venstre mot høyre:

index.go

index.go

copy
123456
package 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:

InputOutput
true && truetrue
true && falsefalse
false && truefalse
false && falsefalse

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

index.go

copy
1234567891011
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) } }

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:

question mark

Hvilke av følgende uttrykk kan vi bruke i if-setningen for å sjekke om en figur er et kvadrat basert på width og height?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4
some-alt