🔷 C#

Operadores de Comparação e Operadores Lógicos em C#

O que é e para que serve?

Imagine que você está jogando um jogo de computador. Para passar de fase, você precisa verificar diferentes condições: "Se o herói tem menos de 10 vidas, ative a proteção" ou "Se o jogador pressionou o botão E coletou todas as moedas, abra a porta".

Na programação, essas verificações são feitas por operadores de comparação e operadores lógicos. Eles ajudam o programa a "pensar" e tomar decisões. Sem eles, o código seria apenas uma lista de comandos que são executados sempre da mesma forma, mas assim o programa pode reagir a diferentes situações.

Por exemplo, você está escrevendo uma calculadora de notas. Se o aluno obteve mais de 90 pontos — "Excelente", se menos de 50 — "Ruim". Ou você verifica se o usuário pode entrar no sistema: se a senha estiver correta E a conta não estiver bloqueada — deixe entrar.

Operadores de comparação comparam números ou texto. Operadores lógicos combinam várias condições em uma. Juntos, eles são a base de qualquer código "inteligente".

Sintaxe e exemplos de código

Em C#, os operadores de comparação são assim:

  • == — igual a (atenção: dois sinais de igual, não um!)
  • != — diferente de
  • > — maior que
  • < — menor que
  • >= — maior ou igual a
  • <= — menor ou igual a

Operadores lógicos:

  • && — E (ambas as condições devem ser verdadeiras)
  • || — OU (pelo menos uma condição é verdadeira)
  • ! — NÃO (inverte verdadeiro para falso e vice-versa)

O resultado de uma comparação é sempre true (verdadeiro) ou false (falso).

Exemplo 1: Verificação de idade

int age = 14;
bool canDrive = age >= 18; // false, porque 14 é menor que 18

if (canDrive)
{
    Console.WriteLine("Você pode dirigir!");
}
else
{
    Console.WriteLine("Espere crescer mais."); // Isso será executado
}

// Explicação:
// age >= 18 — é uma comparação. Ela resulta em false.
// if verifica true/false. Se true — executa o primeiro bloco, se false — o segundo.

Exemplo 2: Verificação de login e senha

string login = "user123";
string password = "qwerty";

// Verificamos se o login é igual a "admin" E a senha é igual a "12345"
if (login == "admin" && password == "12345")
{
    Console.WriteLine("Bem-vindo, admin!");
}
else
{
    Console.WriteLine("Login ou senha inválidos.");
}

// Explicação:
// && significa "E". Ambas as condições devem ser true.
// login == "admin" — false (porque login = "user123")
// Portanto, toda a condição é false — vamos para o else.

Exemplo 3: Desconto para estudantes ou aposentados

int age = 20;
bool isStudent = true;

// Desconto se a idade for menor que 18 OU a pessoa for estudante
if (age < 18 || isStudent)
{
    Console.WriteLine("Desconto de 50%!");
}
else
{
    Console.WriteLine("Preço total.");
}

// Explicação:
// || significa "OU". Basta um true.
// age < 18 — false (20 não é menor que 18)
// isStudent — true
// Portanto, a condição é true — o desconto é concedido.

Exemplo 4: Verificando se o número não é zero

int number = 7;

if (number != 0)
{
    Console.WriteLine("O número não é zero, pode dividir.");
}
else
{
    Console.WriteLine("Não pode dividir por zero!");
}

// Explicação:
// != verifica "diferente de".
// 7 != 0 — é true, portanto o primeiro bloco é executado.

Exemplo 5: Condição complexa com NÃO

bool isRaining = false;
bool hasUmbrella = true;

// Se NÃO está chovendo OU tem guarda-chuva — pode passear
if (!isRaining || hasUmbrella)
{
    Console.WriteLine("Vamos passear!");
}
else
{
    Console.WriteLine("Ficamos em casa.");
}

// Explicação:
// !isRaining — é "NÃO isRaining". isRaining = false, então !false = true.
// true || true = true — vamos passear.
// Se isRaining = true e hasUmbrella = false, então !true = false, false || false = false — ficamos em casa.

Comparação com Python

Em Python, os mesmos operadores são quase iguais, mas há algumas diferenças:

  • Em vez de && usa-se and
  • Em vez de || usa-se or
  • Em vez de ! usa-se not
  • Operadores de comparação são os mesmos: ==, !=, >, <, >=, <=

Exemplo em Python (o mesmo que em C#):

age = 14
can_drive = age >= 18  # False

if can_drive:
    print("Você pode dirigir!")
else:
    print("Espere crescer mais.")

# Operadores lógicos:
login = "user123"
password = "qwerty"

if login == "admin" and password == "12345":
    print("Bem-vindo, admin!")
else:
    print("Login ou senha inválidos.")

A principal diferença: em C#, os operadores lógicos são símbolos (&&, ||, !), enquanto em Python são palavras (and, or, not). No resto, a lógica é a mesma.

Erros típicos de iniciantes

  1. Confundir = e ==
    = — é atribuição (colocar um valor em uma variável).
    == — é comparação (verificar se os valores são iguais).
    Erro: if (age = 18) — não pode! Deve ser if (age == 18).
  2. Esquecer a precedência de operadores
    Primeiro são executadas as comparações, depois os operadores lógicos. Mas é melhor usar parênteses para clareza.
    Exemplo: if (age > 18 && name == "Tom" || score > 100) — não está claro o que se pretendia. Correto: if ((age > 18 && name == "Tom") || score > 100).
  3. Confundir && e ||
    && exige que todas as condições sejam verdadeiras. || exige que pelo menos uma seja verdadeira.