Menu
Coddy logo textTech

Operator Precedence

Parte da seção Lógica & Fluxo do Journey de C# da Coddy — lição 38 de 66.

A precedência de operadores determina a ordem em que os operadores são avaliados em uma expressão. Compreender a precedência é crucial para escrever expressões lógicas corretas.

Veja este exemplo:

int result = 5 + 3 * 2;

Qual é o valor de result? É 11, não 16, porque a multiplicação tem maior precedência que a adição.

Aqui está uma ordem de precedência simplificada (da mais alta para a mais baixa):

  1. Parênteses ()
  2. Multiplicação/Divisão * / %
  3. Adição/Subtração + -
  1. Operadores de comparação < > <= >=
  2. Operadores de igualdade == !=
  1. AND lógico &&
  2. OR lógico ||
  3. Operadores de atribuição = += -= etc.

Vamos ver como isso se aplica:

bool result = 5 > 3 && 10 < 20 || 7 == 8;

Primeiro, as comparações são avaliadas: 5 > 3 é true, 10 < 20 é true, e 7 == 8 é false.
Em seguida, AND lógico: true && true é true.
Finalmente, OR lógico: true || false é true.

Então o resultado é true.

Use parênteses para tornar seu código mais claro:

bool result = (5 > 3 && 10 < 20) || (7 == 8);
challenge icon

Desafio

Fácil

Crie um método chamado EvaluateExpression que recebe três inteiros (a, b, c) e retorna um booleano.

Seu método deve retornar o resultado desta expressão:
a > b || a == c && b < c

Em seguida, crie outro método chamado EvaluateWithParentheses que avalia:
(a > b || a == c) && b < c

Seu programa deve ler três inteiros do console e imprimir os resultados de ambas as avaliações em linhas separadas.

Folha de consulta

A precedência de operadores determina a ordem em que os operadores são avaliados em uma expressão.

Ordem de precedência (da mais alta para a mais baixa):

  1. Parênteses ()
  2. Multiplicação/Divisão * / %
  3. Adição/Subtração + -
  4. Operadores de comparação < > <= >=
  5. Operadores de igualdade == !=
  6. AND lógico &&
  7. OR lógico ||
  8. Operadores de atribuição = += -= etc.

Exemplo:

int result = 5 + 3 * 2; // result is 11, not 16

Expressão lógica complexa:

bool result = 5 > 3 && 10 < 20 || 7 == 8;
// Evaluates to: true && true || false = true || false = true

Use parênteses para maior clareza:

bool result = (5 > 3 && 10 < 20) || (7 == 8);

Experimente você mesmo

using System;

class Program
{
    public static bool EvaluateExpression(int a, int b, int c)
    {
        // Escreva seu código aqui
    }
    
    public static bool EvaluateWithParentheses(int a, int b, int c)
    {
        // Escreva seu código aqui
    }
    
    static void Main(string[] args)
    {
        Console.WriteLine("Enter three integers:");
        int a = int.Parse(Console.ReadLine());
        int b = int.Parse(Console.ReadLine());
        int c = int.Parse(Console.ReadLine());
        
        // Chame seus métodos e imprima os resultados
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo