Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Operadores Lógicos | Estruturas de Controle
Introdução ao Golang

bookOperadores Lógicos

Outra classe de operadores é conhecida como operadores lógicos. Diferente de outros operadores que trabalham com valores numéricos, os operadores lógicos são projetados para manipular valores booleanos. Existem três operadores lógicos:

OperadorLógica
!NÃO
||OU
&&E

O operador NÃO (!) é utilizado para negar (inverter) uma expressão booleana. Veja um exemplo simples que inclui uma instrução if:

index.go

index.go

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

No código acima, a instrução Print não será executada porque a condição é false por padrão. No entanto, se incluirmos um operador NOT na expressão, ela será negada e, portanto, equivalente a true:

index.go

index.go

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

Também podemos usar o operador NOT (!) em casos mais complexos. No entanto, é necessário colocar as expressões entre parênteses antes de negá-las. Por exemplo, se quisermos negar 3 > 4, devemos escrever !(3 > 4):

index.go

index.go

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

O operador OR (||) avalia dois operandos e retorna true se pelo menos um dos operandos for true.

Nota

Um operando refere-se a um valor ou expressão utilizado como entrada para um operador em uma instrução ou expressão. Por exemplo, na expressão 1 + 2, os valores 1 e 2 são operandos. No caso dos operadores lógicos, um operando é sempre uma expressão ou valor booleano.

Veja um exemplo que ilustra o uso básico dos operadores lógicos:

index.go

index.go

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

A primeira instrução exibe true porque um dos operandos na expressão true || false é true. Em contraste, a segunda instrução exibe false, pois ambos os operandos são false nessa expressão. Abaixo está a tabela verdade para a operação lógica OU:

Nota

Uma tabela verdade é uma representação lógica que exibe todas as combinações possíveis de entradas e seus respectivos valores de saída.

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

É possível encadear operadores lógicos OU para combinar múltiplos operandos. Nesse caso, a expressão é avaliada da esquerda para a direita:

index.go

index.go

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

A ordem de avaliação para a expressão acima é a seguinte:

Nota

Por padrão, todas as expressões lógicas são avaliadas da esquerda para a direita.

O operador lógico AND (&&) é semelhante ao operador OR (||), mas retorna true apenas se ambos os operandos tiverem valor true. A tabela verdade para a operação lógica AND (&&) é apresentada abaixo:

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

Veja um exemplo mais complexo que demonstra um uso prático dos operadores lógicos. Reserve um momento para analisar o código e compreender como ele funciona:

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

Observe que, no exemplo acima, utilizamos múltiplos operadores e valores para criar uma condição mais complexa. Durante a execução, a expressão é avaliada com base na prioridade dos operadores. Operadores de alta prioridade são avaliados primeiro, e é importante compreender a ordem em que são processados. Operadores de comparação possuem prioridade maior do que operadores lógicos.

Abaixo está um diagrama que ilustra o ranking de prioridade dos operadores lógicos:

O diagrama a seguir ilustra como a expressão 1 <= x && x <= 10 || 90 <= x && x <= 100 é avaliada:

question mark

Qual das seguintes expressões podemos usar na instrução if para verificar se uma forma é um quadrado com base em seu width e height?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain the difference between the AND and OR logical operators?

What does operator precedence mean in logical expressions?

Can you give more examples of using logical operators in code?

Awesome!

Completion rate improved to 1.96

bookOperadores Lógicos

Deslize para mostrar o menu

Outra classe de operadores é conhecida como operadores lógicos. Diferente de outros operadores que trabalham com valores numéricos, os operadores lógicos são projetados para manipular valores booleanos. Existem três operadores lógicos:

OperadorLógica
!NÃO
||OU
&&E

O operador NÃO (!) é utilizado para negar (inverter) uma expressão booleana. Veja um exemplo simples que inclui uma instrução if:

index.go

index.go

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

No código acima, a instrução Print não será executada porque a condição é false por padrão. No entanto, se incluirmos um operador NOT na expressão, ela será negada e, portanto, equivalente a true:

index.go

index.go

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

Também podemos usar o operador NOT (!) em casos mais complexos. No entanto, é necessário colocar as expressões entre parênteses antes de negá-las. Por exemplo, se quisermos negar 3 > 4, devemos escrever !(3 > 4):

index.go

index.go

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

O operador OR (||) avalia dois operandos e retorna true se pelo menos um dos operandos for true.

Nota

Um operando refere-se a um valor ou expressão utilizado como entrada para um operador em uma instrução ou expressão. Por exemplo, na expressão 1 + 2, os valores 1 e 2 são operandos. No caso dos operadores lógicos, um operando é sempre uma expressão ou valor booleano.

Veja um exemplo que ilustra o uso básico dos operadores lógicos:

index.go

index.go

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

A primeira instrução exibe true porque um dos operandos na expressão true || false é true. Em contraste, a segunda instrução exibe false, pois ambos os operandos são false nessa expressão. Abaixo está a tabela verdade para a operação lógica OU:

Nota

Uma tabela verdade é uma representação lógica que exibe todas as combinações possíveis de entradas e seus respectivos valores de saída.

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

É possível encadear operadores lógicos OU para combinar múltiplos operandos. Nesse caso, a expressão é avaliada da esquerda para a direita:

index.go

index.go

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

A ordem de avaliação para a expressão acima é a seguinte:

Nota

Por padrão, todas as expressões lógicas são avaliadas da esquerda para a direita.

O operador lógico AND (&&) é semelhante ao operador OR (||), mas retorna true apenas se ambos os operandos tiverem valor true. A tabela verdade para a operação lógica AND (&&) é apresentada abaixo:

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

Veja um exemplo mais complexo que demonstra um uso prático dos operadores lógicos. Reserve um momento para analisar o código e compreender como ele funciona:

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

Observe que, no exemplo acima, utilizamos múltiplos operadores e valores para criar uma condição mais complexa. Durante a execução, a expressão é avaliada com base na prioridade dos operadores. Operadores de alta prioridade são avaliados primeiro, e é importante compreender a ordem em que são processados. Operadores de comparação possuem prioridade maior do que operadores lógicos.

Abaixo está um diagrama que ilustra o ranking de prioridade dos operadores lógicos:

O diagrama a seguir ilustra como a expressão 1 <= x && x <= 10 || 90 <= x && x <= 100 é avaliada:

question mark

Qual das seguintes expressões podemos usar na instrução if para verificar se uma forma é um quadrado com base em seu width e height?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4
some-alt