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

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

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

index.go

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

index.go

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

index.go

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

index.go

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

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

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

index.go

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

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

Her er et mere komplekst eksempel, der demonstrerer en praktisk anvendelse af logiske operatorer. Undersøg 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) } }

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:

question mark

Hvilke af følgende udtryk kan vi bruge i if-sætningen for at kontrollere, om en figur er et kvadrat baseret på dens width og height?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

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

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

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

index.go

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

index.go

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

index.go

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

index.go

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

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

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

index.go

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

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

Her er et mere komplekst eksempel, der demonstrerer en praktisk anvendelse af logiske operatorer. Undersøg 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) } }

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:

question mark

Hvilke af følgende udtryk kan vi bruge i if-sætningen for at kontrollere, om en figur er et kvadrat baseret på dens width og height?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
some-alt