Logiska 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:
| Operator | Logik |
|---|---|
! | 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
12345678package 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
12345678package 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
12345678package 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ärdena1och2operander. 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
1234567package 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.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
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
123456package 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:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
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
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) } }
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:
Tack för dina kommentarer!
Fråga AI
Fråga AI
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
Logiska 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:
| Operator | Logik |
|---|---|
! | 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
12345678package 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
12345678package 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
12345678package 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ärdena1och2operander. 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
1234567package 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.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
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
123456package 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:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
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
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) } }
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:
Tack för dina kommentarer!