Fundamentos de Precedência de Operadores
Parte da seção Fundamentos do Journey de GO da Coddy — lição 27 de 109.
Precedência de operadores determina a ordem em que as operações são realizadas em uma expressão. Operações com precedência maior são realizadas antes daquelas com precedência menor.
Crie um programa que demonstre a precedência de operadores:
result1 := 5 + 3 * 2
result2 := (5 + 3) * 2
fmt.Println("5 + 3 * 2 =", result1)
fmt.Println("(5 + 3) * 2 =", result2)Isso produz:
5 + 3 * 2 = 11
(5 + 3) * 2 = 16Na primeira expressão, a multiplicação (*) tem precedência maior que a adição (+), então 3 * 2 é calculada primeiro. Na segunda expressão, os parênteses substituem a precedência padrão, forçando 5 + 3 a ser calculada primeiro.
Desafio
InicianteNeste desafio, você praticará a compreensão da precedência de operadores em Go. Você tem várias variáveis com valores diferentes e precisa corrigir a expressão na variável result para obter a saída esperada.
A expressão atualmente possui um posicionamento incorreto de parênteses. Sua tarefa é adicionar parênteses nos lugares certos para fazer com que a expressão seja avaliada como true.
Folha de consulta
A precedência de operadores determina a ordem em que as operações são realizadas em uma expressão. Operações com precedência maior são realizadas antes daquelas com precedência menor.
A multiplicação (*) tem precedência maior do que a adição (+):
result1 := 5 + 3 * 2 // igual a 11 (3 * 2 primeiro, depois + 5)
result2 := (5 + 3) * 2 // igual a 16 (5 + 3 primeiro, depois * 2)Use parênteses para substituir a precedência padrão e controlar a ordem das operações.
Experimente você mesmo
package main
import "fmt"
func main() {
// Estas variáveis já estão configuradas para você
a := true
b := false
c := true
// TODO: Adicione parênteses à expressão abaixo para fazer com que ela seja avaliada como true
// HINT: A expressão precisa ser avaliada como true
result := a && b || c
// Não modifique a linha abaixo
fmt.Println(result)
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões