Logische Operatoren
Een andere klasse van operatoren staat bekend als logische operatoren. In tegenstelling tot andere operatoren die met numerieke waarden werken, zijn logische operatoren bedoeld voor het verwerken van booleaanse waarden. Er zijn drie logische operatoren:
| Operator | Logica |
|---|---|
! | NOT |
|| | OF |
&& | EN |
De NOT (!) operator wordt gebruikt om een booleaanse expressie te negateren (om te keren). Hier is een eenvoudig voorbeeld met een if-statement:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
In de bovenstaande code wordt de Print-instructie niet uitgevoerd omdat de voorwaarde standaard false is. Als we echter een NOT-operator in de expressie opnemen, wordt deze omgekeerd en dus gelijk aan true:
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
We kunnen de NOT (!) operator ook in complexere gevallen gebruiken. Het is echter noodzakelijk om de expressies tussen haakjes te plaatsen voordat we ze negateren. Bijvoorbeeld, als we 3 > 4 willen negateren, schrijven we !(3 > 4):
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
De OR (||) operator evalueert twee operanden en retourneert true als ten minste één van de operanden true is.
Opmerking
Een operand verwijst naar een waarde of expressie die als invoer wordt gebruikt voor een operator in een instructie of expressie. Bijvoorbeeld, in de expressie
1 + 2zijn de waarden1en2operanden. In het geval van logische operatoren is een operand altijd een booleaanse expressie of waarde.
Hier volgt een voorbeeld dat het basisgebruik van logische operatoren illustreert:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
De eerste instructie geeft true als uitvoer omdat een van de operanden in de expressie true || false true is. Daarentegen geeft de tweede instructie false als uitvoer omdat beide operanden in die expressie false zijn. Hieronder staat de waarheidstabel voor de logische OF-operatie:
Opmerking
Een waarheidstabel is een logische representatie die alle mogelijke combinaties van invoerwaarden en hun bijbehorende uitvoerwaarden weergeeft.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Logische OF-operatoren kunnen worden gekoppeld om meerdere operanden te combineren. In dit geval wordt de expressie van links naar rechts geëvalueerd:
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
De volgorde van evaluatie voor bovenstaande expressie is als volgt:
Opmerking
Standaard worden alle logische expressies van links naar rechts geëvalueerd.
De logische EN (&&) operator lijkt op de OF (||) operator, maar geeft alleen true terug als beide operanden de waarde true hebben. De waarheidstabel voor de logische EN (&&) operatie is hieronder weergegeven:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Hier volgt een complexer voorbeeld dat een praktisch gebruik van logische operatoren demonstreert. Neem even de tijd om de code te bekijken en te begrijpen hoe deze werkt:
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) } }
Let op dat in het bovenstaande voorbeeld meerdere operatoren en waarden worden gebruikt om een complexere voorwaarde te creëren. Tijdens de uitvoering wordt de expressie geëvalueerd op basis van de prioriteit van de operatoren. Operatoren met een hoge prioriteit worden eerst geëvalueerd, en het is belangrijk om de volgorde waarin ze worden verwerkt te begrijpen. Vergelijkingsoperatoren hebben een hogere prioriteit dan logische operatoren.
Hieronder staat een diagram dat de prioriteitsvolgorde van logische operatoren illustreert:
Het volgende diagram laat zien hoe de expressie 1 <= x && x <= 10 || 90 <= x && x <= 100 wordt geëvalueerd:
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 1.96
Logische Operatoren
Veeg om het menu te tonen
Een andere klasse van operatoren staat bekend als logische operatoren. In tegenstelling tot andere operatoren die met numerieke waarden werken, zijn logische operatoren bedoeld voor het verwerken van booleaanse waarden. Er zijn drie logische operatoren:
| Operator | Logica |
|---|---|
! | NOT |
|| | OF |
&& | EN |
De NOT (!) operator wordt gebruikt om een booleaanse expressie te negateren (om te keren). Hier is een eenvoudig voorbeeld met een if-statement:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
In de bovenstaande code wordt de Print-instructie niet uitgevoerd omdat de voorwaarde standaard false is. Als we echter een NOT-operator in de expressie opnemen, wordt deze omgekeerd en dus gelijk aan true:
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
We kunnen de NOT (!) operator ook in complexere gevallen gebruiken. Het is echter noodzakelijk om de expressies tussen haakjes te plaatsen voordat we ze negateren. Bijvoorbeeld, als we 3 > 4 willen negateren, schrijven we !(3 > 4):
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
De OR (||) operator evalueert twee operanden en retourneert true als ten minste één van de operanden true is.
Opmerking
Een operand verwijst naar een waarde of expressie die als invoer wordt gebruikt voor een operator in een instructie of expressie. Bijvoorbeeld, in de expressie
1 + 2zijn de waarden1en2operanden. In het geval van logische operatoren is een operand altijd een booleaanse expressie of waarde.
Hier volgt een voorbeeld dat het basisgebruik van logische operatoren illustreert:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
De eerste instructie geeft true als uitvoer omdat een van de operanden in de expressie true || false true is. Daarentegen geeft de tweede instructie false als uitvoer omdat beide operanden in die expressie false zijn. Hieronder staat de waarheidstabel voor de logische OF-operatie:
Opmerking
Een waarheidstabel is een logische representatie die alle mogelijke combinaties van invoerwaarden en hun bijbehorende uitvoerwaarden weergeeft.
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
Logische OF-operatoren kunnen worden gekoppeld om meerdere operanden te combineren. In dit geval wordt de expressie van links naar rechts geëvalueerd:
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
De volgorde van evaluatie voor bovenstaande expressie is als volgt:
Opmerking
Standaard worden alle logische expressies van links naar rechts geëvalueerd.
De logische EN (&&) operator lijkt op de OF (||) operator, maar geeft alleen true terug als beide operanden de waarde true hebben. De waarheidstabel voor de logische EN (&&) operatie is hieronder weergegeven:
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
Hier volgt een complexer voorbeeld dat een praktisch gebruik van logische operatoren demonstreert. Neem even de tijd om de code te bekijken en te begrijpen hoe deze werkt:
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) } }
Let op dat in het bovenstaande voorbeeld meerdere operatoren en waarden worden gebruikt om een complexere voorwaarde te creëren. Tijdens de uitvoering wordt de expressie geëvalueerd op basis van de prioriteit van de operatoren. Operatoren met een hoge prioriteit worden eerst geëvalueerd, en het is belangrijk om de volgorde waarin ze worden verwerkt te begrijpen. Vergelijkingsoperatoren hebben een hogere prioriteit dan logische operatoren.
Hieronder staat een diagram dat de prioriteitsvolgorde van logische operatoren illustreert:
Het volgende diagram laat zien hoe de expressie 1 <= x && x <= 10 || 90 <= x && x <= 100 wordt geëvalueerd:
Bedankt voor je feedback!