Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Logiska Operatorer | Styrstrukturer
Introduktion till Golang

bookLogiska Operatorer

En annan klass av operatorer kallas logiska operatorer. Till skillnad från andra operatorer som arbetar med numeriska värden är logiska operatorer avsedda för att hantera booleska värden. Det finns tre logiska operatorer:

OperatorLogik
!NOT
||OR
&&AND

NOT-operatorn (!) används för att negera (invertera) ett booleskt uttryck. Här är ett enkelt exempel som inkluderar en if-sats:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }

I ovanstående kod kommer Print-satsen inte att köras eftersom villkoret är false som standard. Om vi däremot inkluderar en NOT-operator i uttrycket kommer det att negeras och därmed vara likvärdigt med true:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }

Vi kan också använda INTE-operatorn (!) i mer komplexa fall. Dock måste vi omsluta uttrycken med parenteser innan vi negerar dem. Till exempel, om vi vill negera 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-operatorn (||) utvärderar två operander och returnerar true om minst en av operanderna är true.

Not

En operand avser ett värde eller uttryck som används som indata för en operator i ett påstående eller uttryck. Till exempel, i uttrycket 1 + 2, är värdena 1 och 2 operander. När det gäller logiska operatorer är en operand alltid ett booleskt uttryck eller värde.

Här är ett exempel som illustrerar grundläggande användning av logiska operatorer:

index.go

index.go

copy
1234567
package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }

Det första uttrycket ger true som resultat eftersom en av operanderna i uttrycket true || false är true. Däremot ger det andra uttrycket false eftersom båda operanderna är false i det uttrycket. Nedan visas sanningsvärdestabellen för den logiska OR-operationen:

Not

En sanningsvärdestabell är en logisk representation som visar alla möjliga kombinationer av indata och deras motsvarande utdata.

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

Logiska OR-operatorer kan kedjas för att kombinera flera operander. I detta fall utvärderas uttrycket från vänster till höger:

index.go

index.go

copy
123456
package main import "fmt" func main() { fmt.Println(false || false || true || false) }

Utvärderingsordningen för ovanstående uttryck är följande:

Obs

Som standard utvärderas alla logiska uttryck från vänster till höger.

Den logiska OCH-operatorn (&&) liknar ELLER-operatorn (||), men returnerar true endast om båda operanderna har värdet true. Sannolikhetstabellen för den logiska OCH-operatorn (&&) visas nedan:

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

Här är ett mer komplext exempel som visar en praktisk användning av logiska operatorer. Ta dig tid att granska koden och förstå hur den fungerar:

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

Observera att vi i exemplet ovan använder flera operatorer och värden för att skapa ett mer komplext villkor. Under körning utvärderas uttrycket baserat på operatorns prioritet. Operatorer med hög prioritet utvärderas först, och det är viktigt att förstå i vilken ordning de behandlas. Jämförelseoperatorer har högre prioritet än logiska operatorer.

Nedan visas ett diagram som illustrerar prioritetsordningen för logiska operatorer:

Följande diagram illustrerar hur uttrycket 1 <= x && x <= 10 || 90 <= x && x <= 100 utvärderas:

question mark

Vilket av följande uttryck kan vi använda i if-satsen för att kontrollera om en form är en kvadrat baserat på dess width och height?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 1.96

bookLogiska Operatorer

Svep för att visa menyn

En annan klass av operatorer kallas logiska operatorer. Till skillnad från andra operatorer som arbetar med numeriska värden är logiska operatorer avsedda för att hantera booleska värden. Det finns tre logiska operatorer:

OperatorLogik
!NOT
||OR
&&AND

NOT-operatorn (!) används för att negera (invertera) ett booleskt uttryck. Här är ett enkelt exempel som inkluderar en if-sats:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }

I ovanstående kod kommer Print-satsen inte att köras eftersom villkoret är false som standard. Om vi däremot inkluderar en NOT-operator i uttrycket kommer det att negeras och därmed vara likvärdigt med true:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }

Vi kan också använda INTE-operatorn (!) i mer komplexa fall. Dock måste vi omsluta uttrycken med parenteser innan vi negerar dem. Till exempel, om vi vill negera 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-operatorn (||) utvärderar två operander och returnerar true om minst en av operanderna är true.

Not

En operand avser ett värde eller uttryck som används som indata för en operator i ett påstående eller uttryck. Till exempel, i uttrycket 1 + 2, är värdena 1 och 2 operander. När det gäller logiska operatorer är en operand alltid ett booleskt uttryck eller värde.

Här är ett exempel som illustrerar grundläggande användning av logiska operatorer:

index.go

index.go

copy
1234567
package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }

Det första uttrycket ger true som resultat eftersom en av operanderna i uttrycket true || false är true. Däremot ger det andra uttrycket false eftersom båda operanderna är false i det uttrycket. Nedan visas sanningsvärdestabellen för den logiska OR-operationen:

Not

En sanningsvärdestabell är en logisk representation som visar alla möjliga kombinationer av indata och deras motsvarande utdata.

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

Logiska OR-operatorer kan kedjas för att kombinera flera operander. I detta fall utvärderas uttrycket från vänster till höger:

index.go

index.go

copy
123456
package main import "fmt" func main() { fmt.Println(false || false || true || false) }

Utvärderingsordningen för ovanstående uttryck är följande:

Obs

Som standard utvärderas alla logiska uttryck från vänster till höger.

Den logiska OCH-operatorn (&&) liknar ELLER-operatorn (||), men returnerar true endast om båda operanderna har värdet true. Sannolikhetstabellen för den logiska OCH-operatorn (&&) visas nedan:

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

Här är ett mer komplext exempel som visar en praktisk användning av logiska operatorer. Ta dig tid att granska koden och förstå hur den fungerar:

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

Observera att vi i exemplet ovan använder flera operatorer och värden för att skapa ett mer komplext villkor. Under körning utvärderas uttrycket baserat på operatorns prioritet. Operatorer med hög prioritet utvärderas först, och det är viktigt att förstå i vilken ordning de behandlas. Jämförelseoperatorer har högre prioritet än logiska operatorer.

Nedan visas ett diagram som illustrerar prioritetsordningen för logiska operatorer:

Följande diagram illustrerar hur uttrycket 1 <= x && x <= 10 || 90 <= x && x <= 100 utvärderas:

question mark

Vilket av följande uttryck kan vi använda i if-satsen för att kontrollera om en form är en kvadrat baserat på dess width och height?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 4
some-alt